如何在SQL中对父记录中的记录进行排序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在SQL中对父记录中的记录进行排序相关的知识,希望对你有一定的参考价值。
我有一个包含“ItemId”和“ParentItemId”列的表。我希望结果按父子顺序排序。有了这个,还有其他列需要对数据进行排序。我希望数据基于“itemType”排序。
对于Eg。
AutoId | itemId | parentItemId | itemType
1 1 0 3
2 2 null 4
3 3 0 6
4 4 null 5
5 5 1 9
6 6 2 9
7 7 3 9
8 8 4 9
9 9 0 2
10 10 0 1
现在我想要以下面的格式绘制结果
AutoId | itemId | parentItemId | itemType
10 10 0 1
9 9 0 2
1 1 0 3
5 5 1 9
2 2 null 4
6 6 2 9
4 4 null 5
8 8 4 9
3 3 0 6
7 7 3 9
有没有办法可以对这些记录进行排序?
任何帮助,将不胜感激。谢谢。
答案
你可以这样做:
select *
from table1
order by coalesce(parentitemid,itemid), itemid
示例:http://sqlfiddle.com/#!9/32e58e/2
另一答案
对于mysql,使用ifnull表示parentItemId字段
select *
from table
order by IFNULL(parentItemId, itemId), itemId
为了oracle
select *
from table
order by NVL(parentItemId, itemId), itemId
另一答案
取自@hkutluay的SQL Server答案:
select * from table1 order by ISNULL(parentItemID, ItemID), ItemID
以上是关于如何在SQL中对父记录中的记录进行排序的主要内容,如果未能解决你的问题,请参考以下文章
在 Pentaho 中对 200-3 亿条记录进行排序的最佳方法?