gpt4 book ai didi

SQL:row_number:按日期排序,最后需要 Null

转载 作者:行者123 更新时间:2023-12-01 11:14:15 25 4
gpt4 key购买 nike

由于我的 DBMS 不允许在 order by 子句中使用“Nulls Last”,因此我需要以下方面的帮助。

row_number() over(partition by a.ID order by a.Date asc

我需要我的行有一个按 ID 排序的行号序列,按日期升序排列,但空日期行在我的序列中是最后一个。显然,如果我可以在我的订单中只说“NULLS LAST”,那就太好了,但是,我的 dbms (MSSQL) 不允许这样做。

例如目前正在发生的事情:

ID   Date     ROW_NUMBER
1 NULL 1
1 1/2/17 2
1 1/3/17 3
2 NULL 1
2 2/2/17 2
2 2/3/17 3
2 2/4/17 4

我想要发生的事情:

ID   Date     ROW_NUMBER
1 1/2/17 1
1 1/3/17 2
1 NULL 3
2 2/2/17 1
2 2/3/17 2
2 2/4/17 3
2 NULL 4

帮助?谢谢!

最佳答案

只需在 order by 中添加另一个键:

row_number() over (Partition by a.ID
order by (case when a.date is not null then 1 else 2 end),
a.Date asc
)

关于SQL:row_number:按日期排序,最后需要 Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54932253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com