SQL排序问题【关于UNION ALL && ORDER BY 】

KAKUKYOWU 2009-05-18 12:16:50
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个查询汇总排序,还是只对最后一个进行排序?望高手赐教,谢谢!
...全文
469 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
kokobox 2009-05-18
  • 打赏
  • 举报
回复
对整个排序:

select * from (
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排序


Johnson_Hong 2009-05-18
  • 打赏
  • 举报
回复
这种问题,自己试一下不就知道了,是对结果合并之后的排序
zhong19860904 2009-05-18
  • 打赏
  • 举报
回复
应该是对3个查询汇总排序。
zhong19860904 2009-05-18
  • 打赏
  • 举报
回复
这个sql语句对吗?
不会报A1是属于哪个表中列的异常吗?
APOLLO_TS 2009-05-18
  • 打赏
  • 举报
回复

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...


检索之后形成数据区 例如地址是Ox0000002

sql的执行顺序决定 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)
这样的话,括号中的形成一个独立的运行区,具有自己的优先权。

就跟编译原理中用括号提高运算优先权一样。

KAKUKYOWU 2009-05-18
  • 打赏
  • 举报
回复
自己试了下,明白了,谢谢大家。结贴给分~
KAKUKYOWU 2009-05-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zhong19860904 的回复:]
这个sql语句对吗?
不会报A1是属于哪个表中列的异常吗?
[/Quote]

应该不会的
Johnson_Hong 2009-05-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 kokobox 的回复:]
对整个排序:

SQL code
select * from (
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

是对…
[/Quote]

可不是这样的哦。你可以在oracle里面试验一下

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧