微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在结尾处使用null进行订购

如何解决如何在结尾处使用null进行订购

我有一个带有测试日期列的学生表,我想创建一个按日期排序的查询 从最旧的第一个到新的,其中所有包含null的列将是最后一个

我需要的

01/01/2020
15/02/2020
null
null

我会得到什么

null
null
01/01/2020
15/02/2020

是否可以在不调用2个查询的情况下执行此操作,或者添加额外的列然后使用顺序。

tnx

解决方法

您可以通过CASE表达式进行排序:

SELECT *
FROM yourTable
ORDER BY CASE WHEN date_col IS NOT NULL THEN 0 ELSE 1 END,date_col;

此方法使用了两级排序,该排序将所有非空日期记录放在首位,然后是空记录。在这两组中,我们按日期升序排列。

,

对于sql server:

CREATE TABLE Test(
date datetime NULL
)


insert into Test (date)
values('2020-01-01'),('2020-02-15'),(NULL),(NULL)


select * from Test
ORDER BY IIF(date IS NULL,1,0),date;

查看链接:https://rextester.com/CXK25023

,

尝试将空值替换为顺序更有意义的内容。所以

isnull(column1,'2100-01-01')

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。