当前位置:  开发笔记 > 编程语言 > 正文

如何在没有ORDER BY的情况下在UNION中订购条目?

如何解决《如何在没有ORDERBY的情况下在UNION中订购条目?》经验,为你挑选了2个好方法。



1> Joel Coehoor..:
SELECT col
FROM 
   (
       SELECT a col, 0 ordinal FROM A LIMIT 1
       UNION ALL
       SELECT b, 1 FROM B LIMIT 1
   ) t
ORDER BY ordinal


正确:这里的区别在于它隐藏了序数.'t'为派生表提供了一个名称 - 你可以使用你想要的任何东西,但由于我们没有在其他地方使用它,实际值并不重要.但如果没有东西,它就无法编译.

2> Dana..:

我不认为订单是保证的,至少不是所有DBMS.

我过去为控制UNION中的顺序所做的是:

(SELECT a, 0 AS Foo FROM A LIMIT 1)
UNION
(SELECT b, 1 AS Foo FROM B LIMIT 1)
ORDER BY Foo

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有