SQL按查询排序

标签 sql postgresql

我有一个 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/

相关文章:

java - JPA 命名存储过程返回简单对象

mysql - UPDATE 中的 SQL 随机值

sql - 选择多行匹配数据

java - 将 SQL 结果映射到 Java 模型

mysql - 如何在 SQLite 中使用 CompareTo() 的功能?

postgresql - 用单个整数调用整数[]的函数

mysql - 按 id 对结果进行分组并创建新列

postgresql - 为大型数据集生成 ngram 频率

mysql - 依赖 DISTINCT 的几个字段只能在 MySQL 上工作吗?

javascript - 在多个表中同时获取结果