【问题标题】:T-SQL Server ORDER BY date and nulls lastT-SQL Server ORDER BY 日期和空值最后
【发布时间】:2019-10-24 16:56:00
【问题描述】:

我正在为考试 70-761 学习,并且在使用 order by 时要求在最后放置空值是一个挑战,我知道结果是这样的:

选择 订单号, 发货日期 来自 Sales.Orders 其中 custid = 20 当 shippingdate 为 null 然后 1 else 0 end, shippingdate 时按案例排序

我不知道为什么 1 和 0 以及它们如何影响结果,任何人都可以澄清。

最好的问候, 丹尼尔

【问题讨论】:

    标签: case


    【解决方案1】:

    您的订单子句中有两个参数,它喜欢拆分两个组,然后继续对这些组内的项目进行排序

    首先,因为0小于1,所以所有没有发货日期的订单都会被推到最后。 然后我们将按发货日期订购 示例:

    订单ID |发货日期

    1. |空
    2. |今天
    3. |空
    4. |昨天
    5. |明天

    首先按case when shippeddate is null then 1 else 0 end排序,我们将得到

    订单ID |发货日期

    1. |今天
    2. |昨天
    3. |明天
    4. |空
    5. |空

    然后继续按照发货日期排序,我们将得到

    1. |昨天
    2. |今天
    3. |明天
    4. |空
    5. |空

    希望对你有用

    【讨论】:

    • 我有点明白了。
    • 希望有另一种解释 :)
    猜你喜欢
    • 2011-08-18
    • 1970-01-01
    • 2010-12-05
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 2017-08-22
    • 2023-02-21
    相关资源
    最近更新 更多