我有下表
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
您需要在thd
NULLS FIRST
列上指定ParentNo
,因为默认情况下NULL
值以升序排序。