请告诉我一个如何将所有子节点标记为父ID的示例。只需要标记父级值为"need"
的分支(参见示例图像)。使用递归查询,无法重命名特定父级的所有子级...
初始数据:
+-----+----------+----------+
| id | parentid | selector |
+-----+----------+----------+
| 1 | | |
| 2 | 1 | |
| 3 | 1 | need |
| 4 | 2 | |
| 5 | 2 | need |
| 6 | 3 | |
| 7 | 5 | |
| 8 | 5 | |
| 9 | 6 | |
+-----+----------+----------+
需要数据:
+-----+----------+----------+----------------+
| id | parentid | selector | parentSelector |
+-----+----------+----------+----------------+
| 1 | null | | null |
| 2 | 1 | | null |
| 3 | 1 | need | 3 |
| 4 | 2 | | null |
| 5 | 2 | need | 5 |
| 6 | 3 | | 3 |
| 7 | 5 | | 5 |
| 8 | 5 | | 5 |
| 9 | 6 | | 3 |
+-----+----------+----------+----------------+
任务是通过父元素值为"need"
的元素进行分组。我想,我应该创建一个带有标记的列,如上表中的示例,还是有其他选项?
我使用SQL Server 2012
答案 0 :(得分:1)
我不知道它是否适用于Sql server 2012,但我发现这个microsoft,我认为是你想要的,为了使parentSelector具有条件,我使用CASE(Transact-SQL)。 / p>
这是另一个例子:stackoverflow question