我有一个 Sql 查询,它是三个查询的联合,例如:
query1
Union
query2
Union
query3
我想问一下是否有一种方法可以让查询分别输出,这样 query1 的结果首先在 ResultSet 中,query2 第二,query3 在最后。
谢谢
最佳答案
您通常会通过包含指定查询的列并按其排序来执行此操作:
select . . .
from ((select q.*, 1 as ordering from (<query1>) q) union all
(select q.*, 2 as ordering from (<query2>) q) union all
(select q.*, 3 as ordering from (<query3>) q)
) q
order by ordering;
注意:这会将 union
替换为 union all
,因此不会删除重复项。
关于SQL按查询排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40866004/