>>>第一个ID是本级的第二个是上级的???
you mean you have something like
Table_Test:
ID int
ManagerID int? if yes, try something likeSelect
ID As node_code,
Case When Exists(Select * From Table_Test t2 Where t2.ID = t1.ManagerID) Then 'dddd' Else 'aaaaaa' end As node_next
From Table_Test t1
you mean you have something like
Table_Test:
ID int
ManagerID int? if yes, try something likeSelect
ID As node_code,
Case When Exists(Select * From Table_Test t2 Where t2.ID = t1.ManagerID) Then 'dddd' Else 'aaaaaa' end As node_next
From Table_Test t1
上级ID = '1234'
本级ID = '123456'if yes, try
Select
ID As node_code,
Case When Exists(Select * From Table_Test t2 Where len(t1.ID) > len(t2.ID) and substring(t1.ID, 1, len(t2.ID)) = t2.ID)
Then 'has boss'
Else 'no boss' end
As node_next
From Table_Test t1
ID As node_code,
Case When Exists(Select * From Table_Test t2 Where t2.id like rtrim(t1.id)+'%')
Then 'has boss'
Else 'no boss' end
As node_next
From Table_Test t1
id是字符型。
Select
ID As node_code,
Case When Exists(Select * From Table_Test t2 Where t2.id<>t1.id and t2.id like rtrim(t1.id)+'%')
Then 'has boss'
Else 'no boss' end
As node_next
From Table_Test t1