try:
select a.[name],a.[children],b.[name] as Parent
from 表 a
join 表 b on charindex(b.name,a.children) > 0

解决方案 »

  1.   

    上面错了一点点select a.[name],a.[children],b.[name] as Parent
    from 表 a
    left join 表 b on charindex(a.name,b.children) > 0
      

  2.   

    测试:
    create table 表(Name char(2),Children varchar(10))
    insert 表 values('A','B1,B2')
    insert 表 values('B1','C1')
    insert 表 values('B2','C2')
    insert 表 values('C1','')
    insert 表 values('C2','')select a.[name],a.[children],b.[name] as Parent
    from 表 a
    LEFT join 表 b on charindex(A.name,B.children) > 0
    name children   Parent 
    ---- ---------- ------ 
    A    B1,B2      NULL
    B1   C1         A 
    B2   C2         A 
    C1              B1
    C2              B2(所影响的行数为 5 行)
      

  3.   

    楼上的好像不大妥当,试试这个就知道了:create table 表(Name char(2),Children varchar(10))
    insert 表 values('A','B12,B2')
    insert 表 values('B1','C1')
    insert 表 values('B2','C2')
    insert 表 values('C1','')
    insert 表 values('C2','')
    select a.[name],a.[children],b.[name] as Parent
    from 表 a
    LEFT join 表 b on charindex(A.name,B.children) > 0
      

  4.   

    --我认为应该这样!
    select a.[name],a.[children],b.[name] as Parent
    from 表 a
    LEFT join 表 b on charindex(A.name+',',B.children+',') > 0
      

  5.   

    楼上有理:
    1:字段长度需定义长一些
    2:用charindex比较时在前后加上逗号,再稍改一点
    select a.[name],a.[children],b.[name] as Parent
    from 表 a
    left join 表 b on charindex(','+a.name+',',','+b.children+',') > 0