Sql按查询排序

时间:2016-11-29 12:32:09

标签: sql postgresql

我有一个Sql查询,它是三个查询的并集,例如:

 query1 
 Union 
 query2 
 Union 
 query3 

我想询问是否有一种方法可以通过查询分别输出,这样query1的结果首先在ResultSet中,query2在查询2中,然后在查询3中结束。

谢谢

1 个答案:

答案 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,因此不会删除重复项。