SELECT A1,A2... FROM TABLE_1 WHERE...
UNION ALL
SELECT A1,A2... FROM TABLE_2 WHERE...
UNION ALL
SELECT A1,A2... FROM TABLE_3 WHERE...
ORDER BY A1 DESC不考虑其它因素,我就想知道最后的那个排序是对3个查询汇总排序,还是只对最后一个进行排序?望高手赐教,谢谢!
UNION ALL
SELECT A1,A2... FROM TABLE_2 WHERE...
UNION ALL
SELECT A1,A2... FROM TABLE_3 WHERE...
ORDER BY A1 DESC不考虑其它因素,我就想知道最后的那个排序是对3个查询汇总排序,还是只对最后一个进行排序?望高手赐教,谢谢!
不会报A1是属于哪个表中列的异常吗?
SELECT A1,A2... FROM TABLE_1 WHERE...
UNION ALL
SELECT A1,A2... FROM TABLE_2 WHERE...
UNION ALL SELECT A1,A2... FROM TABLE_3
WHERE...
) ORDER BY A1 DESC
这个:SELECT A1,A2... FROM TABLE_1 WHERE...
UNION ALL
SELECT A1,A2... FROM TABLE_2 WHERE...
UNION ALL
SELECT A1,A2... FROM TABLE_3 WHERE...
ORDER BY A1 DESC是对最后一个select排序
可不是这样的哦。你可以在oracle里面试验一下
SELECT A1,A2... FROM TABLE_1 WHERE...
UNION ALL
SELECT A1,A2... FROM TABLE_2 WHERE...
UNION ALL
SELECT A1,A2... FROM TABLE_3 WHERE...
检索之后形成数据区 例如地址是Ox0000002sql的执行顺序决定 select 优先权高,之后对数据区的数据(地址Ox0000002)进行排序。SELECT A1,A2... FROM TABLE_1 WHERE...
UNION ALL
SELECT A1,A2... FROM TABLE_2 WHERE...
UNION ALL
(SELECT A1,A2... FROM TABLE_3 WHERE...
ORDER BY A1 DESC)
这样的话,括号中的形成一个独立的运行区,具有自己的优先权。就跟编译原理中用括号提高运算优先权一样。