一条sql查出所有节点及节点所在的层

来源:百度知道 编辑:UC知道 时间:2024/05/08 11:42:19
表a
c1 c2
A B
A C
B D
C E
D F
E I
D K
C N

所要得到的结果如下:
jd cs
----- ----
A 1
B 2
C 2
D 3
N 3
E 3
F 4
K 4
I 4

select c1 sa jd,level as cs from a connect by prior c1=c2 start with c1='A'

SELECT ID_Num = IDENTITY(int, 1, 1), *
into #temp from a
--为表a编号
ID_Num C1 C2
----------- ---- ----
1 B A
2 C D
3 E F
4 G H
5 A C
6 D M
7 N Z

select distinct c1,id_num from #temp
union
select distinct c2,id_num from #temp

--结果集如下
c1 id_num
---- -----------
A 1
A 5
B 1
C 2
C 5
D 2
D 6
E 3
F 3
G 4
H 4
M 6
N 7
Z 7

--以上,希望对你有所帮助