SQL 服务器根据当前日期使用 Order By 对数据进行排序

SQL Server sort data with Order By according to current date

我有一个tableWebOrder
下面是 table 的简化版本(我省略了这个 post 不需要的大部分列)

+-------------------+----------------+
|Field              |Type            |
+-------------------+----------------+
|WebOrderID         |Int             |
|DueDate            |Date            |
|Customer           |nvarchar(50)    |
+-------------------+----------------+

我想按截止日期排序,这很容易

SELECT * FROM WebOrder ORDER BY DueDate

不过,我想更进一步地进行排序,将当前日期到期的 WebOrders 显示在顶部,然后是稍后到期的 WebOrders,最后是较晚的到期日期按过期日期。
下面是输出的示例

+-------------------+----------------+-----------------+
|WebOrderID         |DueDate         |Customer         |
+-------------------+----------------+-----------------+
|23                 |2020-06-24      |Phillip Fry      |
|2                  |2020-06-24      |Karen Clay       |
|35                 |2020-06-26      |George Sun       |
|64                 |2020-06-28      |Austin Powers    |
|1                  |2020-06-01      |Wu Lang          |
|12                 |2020-06-05      |Jessica Myers    |
|6                  |2020-06-07      |Sarah Red        |
+-------------------+----------------+-----------------+

这个 post 与我想要实现的 非常相似,但是我不确定如何在 sql 服务器中实现相同的目标。 这是我的第一个 post 所以让我知道如何改进我的问题和 post.

考虑条件排序:

order by
    case 
        when dueDate = cast(getdate() as date) then 0
        when dueDate > cast(getdate() as date) then 1
        else 2
    end,
    dueDate

order by 子句中的第一个表达式优先记录当前日期,然后是未来的记录。第二个排序标准按 dueDate.

对子集进行排序