gpt4 book ai didi

sql - 为父级及其子级分配相同的 SNo

转载 作者:行者123 更新时间:2023-12-02 16:05:10 24 4
gpt4 key购买 nike

我有一个名为“TmpTable”的表,该表具有父子关系,表的数据如下所示:

Id | Name      | ParentId
1 PCs 0
2 MACs 1
3 Keyboard 0
4 Mouse 0
5 Screen 3
6 Keyboard 4
7 Mouse 0
8 Screen 0
9 Key 0
10 xyz 9

现在我想选择一列来显示序列号,因为父级和子级具有相同的序列号。没有任何 child 的S.No.增加,结果将如下:

Id | Name      | ParentId | SNo
1 PCs 0 1
2 MACs 1 1
3 Keyboard 0 2
4 Mouse 0 3
5 Screen 3 2
6 Keyboard 4 3
7 Mouse 0 4
8 Screen 0 5
9 Key 0 6
10 xyz 9 6

我如何存档此结果,请指导/帮助我。

最佳答案

您可以使用DENSE_RANK()ORDER BY CASE结合使用的函数:

SELECT *, DENSE_RANK() OVER (ORDER BY CASE WHEN ParentID = 0 THEN ID ELSE ParentID END) 
FROM TmpTable
ORDER BY Id

<强> SQLFiddle DEMO

关于sql - 为父级及其子级分配相同的 SNo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18096703/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com