sql-server - 如何合并两个 SELECT 语句的结果

标签 sql-server select

我是 SQL Server 的新手。请帮我解决以下问题。

我有如下表格,

Job  Quantity Status
1      100      OK
2      400      HOLD
3      200      HOLD
4      450      OK

我现在想编写一个查询,使所有数量等于或大于 400 且状态为 OK 的作业将首先出现,然后是数量等于或大于 400 且状态为 HOLD 的作业。然后所有数量小于 400 且状态为 OK 的作业将出现,然后数量小于 400 且状态为 HOLD 的作业将出现。

这是我的结果应该如何显示。 (抱歉上面困惑的段落)

Job  Quantity Status
4      450      OK
2      400      HOLD
1      100      OK
3      200      HOLD

我该怎么做?有人请帮帮我

最佳答案

SELECT Job, Quantity, Status 
  FROM myTable
 ORDER BY CASE WHEN Quantity >= 400 AND Status = 'OK' THEN 1 
               WHEN Quantity >= 400 AND Status = 'Hold' THEN 2
               WHEN Status = 'OK' THEN 3
               ELSE 4
          END

关于sql-server - 如何合并两个 SELECT 语句的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10691824/

相关文章:

sql - PostgreSQL - 组合函数的 SELECT 和 RETURN VALUE

c# - 从 Windows 服务通过网络访问 SQL Server

sql-server - 为什么我的 Azure SQL 数据库索引仍然碎片?

sql - 更新表时将值分配给所有行

java - 某些 SQL 函数在 HQL 中不起作用

MySQL/MariaDB 按分数对行排序

SQL Server DateTime2(0) 与日期

javascript - 从选项 html 标记中检索值并传递给另一个 servlet

mysql - SQL 中的 SUM 求和

php - 创建 SQL 查询