sql - ORDER BY ASC with NULL last 和随后的排序不起作用
问题描述
我有一个包含 3ORDER BY
列的查询:第二列ORDER BY
必须具有NULL
最后排序的值;第三个ORDER BY
似乎不起作用。
下面的第一个表是我的查询产生的 - 它根据NULL
需要对最后一个表进行排序,但第三个顺序不正确(第 3 行和第 4 行被倒置)。
第 3 行的StatusOK
应该在第 4 行的Status之后LATE
,因为LATE
它是序数 before OK
。
SELECT * FROM t
ORDER BY ORG, IIF(Earliest_Date IS NULL, 1, 0), Status;
ORG Earliest_Date Status
A 1/1/2019 LATE
A 2/2/2019 OK
A NULL OK
A NULL LATE
B 3/1/2019 LATE
B NULL OK
NULLs
这是有序的最后和第三顺序与LATE
before升序的预期结果OK
:
Desired:
ORG Earliest_Date Status
A 1/1/2019 LATE
A 2/2/2019 OK
A NULL LATE
A NULL OK
B 3/1/2019 LATE
B NULL OK
任何帮助是极大的赞赏。
解决方案
我没有访问权限,因此我无法自己进行测试,但听起来您需要做的就是ASC
在您的第三级ORDER BY
标准之后指定,如下所示:
SELECT *
FROM t
ORDER BY ORG, IIF(Earliest_Date IS NULL, 1, 0), Status ASC;
推荐阅读
- python - 将图像读取到预先分配的 numpy 数组
- javascript - ES6 Modules - 导入文件的 3 种方式
- javascript - 最新 API 中 GuideDropDownList 中的 Item 值更改是否有任何回调函数?
- javascript - 我如何在 ngFor-inserted 上使用 d3.select()
的? - android - Android Studio 不断显示我以前的 Android 应用
- react-redux - 自定义渲染连接反应组件与模拟 axios 响应 - getBy* 查询误导性异常
- python - 如何从 python selenium 数据构建动态表?
- php - 升级到 1.32 后 rev_timestamp 无效
- regex - 打印标签的内容
- r - 如何修复此错误“rep 中的错误(是,length.out = len):尝试复制类型为 'S4' 的对象”