我们都知道当几个数据集你能确保没有交集时,用UNION ALL能够达到最好的性能效果,但是效果好的代价就是它并不会帮你排序,这就涉及到UNION ALL的一个排序问题。举个例子:
1. CREATE TABLE a ( ID NUMBER,m_name VARCHAR2(10));
2. CREATE TABLE b ( ID NUMBER,m_name VARCHAR2(10));
3. SELECT * FROM a
4 c
9 b
SELECT * FROM b
3 p
1 i
8 e
4.现在我是想仅对第二个sql的id列进行排序,然后再与第一个sql进行UNION ALL,就需要这么写:
SELECT a.id,a.m_name
FROM a
UNION ALL
SELECT ID,m_name FROM
(SELECT b.id,b.m_name
FROM b
ORDER BY ID) c
本文探讨了在使用SQL的UNIONALL操作时如何仅对特定表的数据进行排序的方法。通过示例展示了如何先对一个表进行排序,再与其他表进行UNIONALL操作,以达到数据整合的目的。

147

被折叠的 条评论
为什么被折叠?



