首页 > 解决方案 > 使用 UNION 查询 ORDER

问题描述

我必须在日期列表中添加一个“*”,如下所示:

*
1/1/2021
2/1/2021
3/1/2021
...

因此,以我的知识渊博,我创建了如下代码:

SELECT Disciplines_Date.Date_Modification
FROM Disciplines_Date
ORDER BY Date_Modification DESC;
UNION 
SELECT UnionTable.ABC 
FROM UnionTable;

其中“*”出现在表 Union 中。但是,命令 ORDER 不起作用,我有一个仅按数字排序的系统,如下所示:

*
9/01/2021
3/01/2021
12/01/2021
21/01/2021

如何避免这种情况?谢谢您的帮助

标签: sqlms-access

解决方案


实际上,您正在尝试合并两个查询:

SubQuery1
UNION
SubQuery2

Subquery1 的结果是有序的,但联合操作返回一组新的元组。其中不再保留 SubQuery1 的顺序。

你想要的是:

select * from (
   SubQuery1
   UNION 
   Subquery 2)
) as ANYname 
order by  <whatever list of attributes>

这将保证 order by 是最后执行的操作。


推荐阅读