我有一个Sql查询,它是三个查询的并集,例如:
query1
Union
query2
Union
query3
我想询问是否有一种方法可以通过查询分别输出,这样query1的结果首先在ResultSet中,query2在查询2中,然后在查询3中结束。
谢谢
答案 0 :(得分:4)
通常,您可以通过包含指定查询和按顺序排序的列来执行此操作:
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
,因此不会删除重复项。