我有下表

OrderNO   |    ParentNO
1         |        null
2         |        null
1         |       3
2         |       3
3         |       null

我需要一个sql查询,它将按照以下顺序检索上表数据
OrderNO   |    ParentNO
    1         |        null
    2         |        null
    3         |       null
    1         |       3
    2         |       3

此视图背后的逻辑是第一个首选项是带空的订单号,如果父订单号中有可用的订单号,那么它应该显示在相应的订单号旁边。在上面的示例中-带空的订单号1出现在第一行,然后由于OrderNo1在ParentNo中不可用,那么下一个带空ParentNo的订单号将显示,因为orderno2在parentno中不可用,然后显示parentno为空的下一个orderno3,然后由于orderno3在parentno中可用,相应的行显示在下一个3.1中
(1 3),下一个3.2(2 3)

最佳答案

尝试此查询:

SELECT OrderNo, ParentNo FROM
table
ORDER BY ParentNo ASC NULLS FIRST, OrderNo ASC

您需要在thdNULLS FIRST列上指定ParentNo,因为默认情况下NULL值以升序排序。

09-15 21:48