【发布时间】:2019-01-14 02:02:03
【问题描述】:
我想同时从一个排序表中执行多个 SELECT。我的想法如下:
SELECT TOP 5 * FROM unsorted_table where parameter1 = 1 ORDER BY parameter2 DESC, paramter3 DESC, parameter4 ASC
UNION
SELECT TOP 5 * FROM unsorted_table where parameter1 = 2 ORDER BY parameter2 DESC, paramter3 DESC, parameter4 ASC
但由于 ORDER BY,它显然不起作用。我也试过这个,但没有成功:
SELECT TOP 5 * FROM (SELECT * FROM unsorted_table where where parameter1 = 1 ORDER BY parameter2 DESC, paramter3 DESC, parameter4 ASC)
UNION
SELECT TOP 5 * FROM (SELECT * FROM unsorted_table where where parameter1 = 2 ORDER BY parameter2 DESC, paramter3 DESC, parameter4 ASC)
如果我使用了以下内容,正如这里其他线程所推荐的那样,我没有得到我需要的东西,因为表格在最后进行了排序:
SELECT TOP 5 * FROM unsorted_table WHERE parameter1 = 1
UNION
SELECT TOP 5 * FROM unsorted_table WHERE parameter1 = 2
ORDER BY parameter2 DESC, paramter3 DESC, parameter4 ASC
另一个限制是,我不能创建新表。因此,将排序后的表保存在新表中并从中选择也不是一个选项。
【问题讨论】:
-
标记您正在使用的 DBMS(即
MySQL、SQL Server等...)。
标签: sql sql-server sql-order-by union