>>>第一个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

解决方案 »

  1.   

    OK, I probably figured out what you meant now, do you mean you have
    上级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
      

  2.   

    Select
    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是字符型。
      

  3.   

    这样才对。
    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