使用UNION查询时,同时使用TOP 与ORDER BY遇到的问题
问题发生的情况:
SELECT TOP 5 * FROM TABLE1 WHERE……
UNION
SELECT TOP 5 * FROM TABLE2 WHERE……
ORDER BY (一个会更改显示顺序的条件)
结果是第一个表没有按照ORDER BY的条件排序,第二个表按照ORDER BY的条件排序了,造成显示结果不正确。
解决办法:
SELECT TOP 10 * FROM
(
SELECT * FROM TABLE1 WHERE……
UNION
SELECT * FROM TABLE2 WHERE……
)
ORDER BY (一个会更改显示顺序的条件)