sql - 使用 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
如何避免这种情况?谢谢您的帮助
解决方案
实际上,您正在尝试合并两个查询:
SubQuery1
UNION
SubQuery2
Subquery1 的结果是有序的,但联合操作返回一组新的元组。其中不再保留 SubQuery1 的顺序。
你想要的是:
select * from (
SubQuery1
UNION
Subquery 2)
) as ANYname
order by <whatever list of attributes>
这将保证 order by 是最后执行的操作。
推荐阅读
- r - 如何将行名更改一个位置
- three.js - 如何用随机粒子填充加载的 STL 网格(不是简单的形状,如 CUBE ETC),并在 three.js 中使用此几何体绑定动画
- asp.net-mvc - 从 mvc 的下拉列表中删除重复项
- php - 如何在 Wordpress 搜索表单上根据文本字符串查找类别
- javascript - D3JS:是否可以将检索值的函数传递给“转换,翻译”属性?
- python - 在 Dask 中预分散数据对象有优势吗?
- javascript - Forge Viewer 中的个人工具栏按钮未出现
- python - 在列表中计算成对点积的 Pythonic 方法
- google-maps - 谷歌地点详细信息街道号码与字母
- debugging - 在 Prolog 中调试递归