我有下表
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
这个视图背后的逻辑是第一个偏好是订单号为空,如果订单号在父语句中没有,那么它应该显示在相应的订单号旁边。在上面的示例中 - orderno1 with null in the第一行,因为orderno1在parentno中不可用,然后显示下一个带有null parentno的orderno2,因为orderno2在parentno中不可用,然后显示下一个带有null parentno的orderno3然后,因为orderno3在parentno中可用,相应的行显示在下一个3.1 (1 | 3),接下来3.2(2 | 3)
答案 0 :(得分:1)
您可以使用NULLS FIRST
,如下所示
select OdrerNO, ParentNO
from tab
order by ParentNO NULLS FIRST, OdrerNO ASC
答案 1 :(得分:1)
尝试此查询:
SELECT OrderNo, ParentNo FROM
table
ORDER BY ParentNo ASC NULLS FIRST, OrderNo ASC
您需要在NULLS FIRST
列上指定ParentNo
,因为默认情况下NULL
值会按升序排列。
答案 2 :(得分:0)
尝试:
Select * FROM TABLE
ORDER BY ParentNo, OrderNo
如果我没记错的话,应该先找到空的。因此,通过parentNo对它进行排序将首先给出Null,然后对orderNo进行排序。所以会产生预期的效果。