【发布时间】:2019-05-15 15:51:01
【问题描述】:
我必须用两个条件对行进行排名。
| CBorderIID | CustomerID | CBDate | orderID |OrderDate |
+-------------+-------------+---------+------------+-----------+
| 355253780 | 5314 |1/29/2017| 355253780 | 1/29/2017 |
| 355253780 | 5314 |1/29/2017| 359324061 | 4/5/2017 |
| 355253780 | 5314 |1/29/2017| 368700530 | 5/16/2017 |
| 355253780 | 5314 |1/29/2017| 375164457 | 9/11/2017 |
| 482387847 | 5384 |1/29/2017| 446421606 | 7/27/2018 |
| 482387847 | 5384 |1/29/2017| 449212357 | 8/5/2018 |
| 482387847 | 5384 |1/29/2017| 482387847 | 1/12/2019 |
| 482387847 | 5384 |1/29/2017| 489428993 | 2/23/2019 |
我想将 CBorderIID = OrderID 的行排名为 1,然后当 CBorderIID OrderID 和 CBdate
期望的输出
| CBorderIID | CustomerID | CBDate | orderID |OrderDate | Rank
+-------------+-------------+---------+------------+-----------+------
| 355253780 | 5314 |1/29/2017| 355253780 | 1/29/2017 | 1
| 355253780 | 5314 |1/29/2017| 359324061 | 4/5/2017 | 2
| 355253780 | 5314 |1/29/2017| 368700530 | 5/16/2017 | 3
| 355253780 | 5314 |1/29/2017| 375164457 | 9/11/2017 | 4
| 482387847 | 5384 |1/29/2017| 446421606 | 7/27/2018 | NULL
| 482387847 | 5384 |1/29/2017| 449212357 | 8/5/2018 | NULL
| 482387847 | 5384 |1/29/2017| 482387847 | 1/12/2019 | 1
| 482387847 | 5384 |1/29/2017| 489428993 | 2/23/2019 | 2
我尝试使用分区超过OrderID 的条件进行行排名,但它不起作用。
【问题讨论】:
-
到目前为止你尝试了什么?
-
能再解释一下NULL的逻辑吗?
标签: sql sql-server-2016