jeb*_*ick 6 sql t-sql sql-server sql-server-2005 hierarchical-data
我有一个表可以引用表中的另一个成员作为父表.该父级也可以将另一行称为其父级......依此类推.
id col1 col2 parentID
1 foo bar NULL
2 blah boo 1
3 fob far 2
4 wob lob NULL
Run Code Online (Sandbox Code Playgroud)
我想返回给出id的链.因此,如果id为3,我将返回第3行,第2行和第1行.如果id为2,我将返回第2行和第1行.如果id为1或4,我将返回该行.
谢谢
OMG*_*ies 12
使用递归CTE:
DECLARE @id INT
SET @id = 3
;WITH hierarchy AS (
SELECT t.id, t.parentid
FROM YOUR_TABLE t
WHERE t.id = @id
UNION ALL
SELECT x.id, x.parentid
FROM YOUR_TABLE x
JOIN hierarchy h ON h.parentid = x.id)
SELECT h.id
FROM hierarchy h
Run Code Online (Sandbox Code Playgroud)
结果:
id
---
3
2
1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10376 次 |
| 最近记录: |