我正在尝试选择2000年以上的前5个金额和2000年以下的前5个金额,并在单个结果集中返回数据。
SELECT TOP 5 *
FROM bid
WHERE amount >= 2000
ORDER BY amount ASC
UNION
SELECT TOP 5 *
FROM bid
WHERE amount < 2000
ORDER BY amount DESC
看起来这不是union
应该如何使用,因为我遇到了运行时错误。
Incorrect syntax near the keyword 'union'.
编写所需查询的正确方法是什么?
SELECT *
FROM (SELECT TOP 5 *
FROM bid
WHERE amount >= 2000
ORDER BY amount ASC) t1
UNION
SELECT *
FROM (SELECT TOP 5 *
FROM bid
WHERE amount < 2000
ORDER BY amount DESC) t2
您可以向结果添加其他顺序:
SELECT *
FROM (SELECT *
FROM (SELECT TOP 5 *
FROM bid
WHERE amount >= 2000
ORDER BY amount ASC) t1
UNION
SELECT *
FROM (SELECT TOP 5 *
FROM bid
WHERE amount < 2000
ORDER BY amount DESC) t2) t3
ORDER BY t3.amount
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句