我有一个查询要从 4 个不同的表中获取记录。我union
用来获取最终记录。我的问题是我在所有 4 个表中没有相同数量和类型的列,所以我正在制作具有null
价值的虚拟列。我面临的问题是排序。我正在使用 datetime desc 对记录进行排序,但有时当日期相同时,我希望警报上的二级排序列可以是 High、Medium 或 Null 类型。我想要 Null 列在底部,但我在顶部。所以我尝试使用ISNULL(column_name, 'aaaa')
inORDER BY
子句,但没有得到实际结果。任何人都可以帮忙吗?
SELECT CreatedDt as 'Date/Time' , null AS [Alert_Type] FROM TblA
union
SELECT CreatedDt as 'Date/Time' , null AS [Alert_Type] FROM TblB
union
SELECT CreatedDt as 'Date/Time' , null AS [Alert_Type] FROM TblC
union
SELECT CreatedDt as 'Date/Time' , Alert_Type FROM TblD
ORDER BY CreatedDt, ISNULL (Alert_Type,'aa') DESC
错误是
ORDER BY items must appear in the select list if the statement contains a UNION, INTERSECT or EXCEPT operator.
谢谢..