如何对此表进行排序? 它取决于父grp1到父grp3来排序
这里是我的表格样本:
Group Code - Group Desc - Level - Parent Grp1 - Parent Grp2 - Parent Grp3
03 OFFICE SUPPLIES 1 null null null
02 TOOLS 1 null null null
0000002 0000002 3 02 0201 null
0201 HARDWARE 2 02 null null
0301 PEN AND PENCIL 2 03 null null
0000001 0000002 3 03 0301 null
我的例子是我的愿望输出:
Group Code - Group Desc - Level - Parent Grp1 - Parent Grp2 - Parent Grp3
02 TOOLS 1 null null null
0201 HARDWARE 2 02 null null
0000002 0000002 3 02 0201 null
03 OFFICE SUPPLIES 1 null null null
0301 PEN AND PENCIL 2 03 null null
0000001 0000001 3 03 0301 null
任何人都可以帮我抽样查询我的欲望输出吗?
答案 0 :(得分:4)
您可以通过以下方式获得您想要的样本数据:
order by coalesce(ParentGrp1, GroupCode), level
编辑:
在添加更多数据时,您可以对此进行扩展:
select *
from table1
order by coalesce(ParentGrp1, GroupCode),
coalesce(ParentGrp2, GroupCode),
level;
可能有点复杂:
select *
from table1
order by coalesce(ParentGrp1, GroupCode),
(case when level > 1 then coalesce(ParentGrp2, GroupCode) end),
(case when level > 2 then coalesce(ParentGrp3, GroupCode) end),
level;