在数据库在有一个表,里面有A,B两个字段,
其中A字段中数据如下:
11,23,99,211,311,801
21,23,109,211,311,801
........B字段数据如下
11
23
10现在要实现这种效果,从B字段取第一行记录,如11  ,如何检索A字段中完全包含他的数据?在A字段中只有11才算完全匹配,211,311这种情况要排除去。。

解决方案 »

  1.   


    DECLARE @STR VARCHAR(100)
    SET @STR='11,23,99,211,311,80121,23,109,211,311,801'
    IF CHARINDEX(','+'11'+',', ','+@STR+',')>0
    PRINT '11 WAS FOUND'
      

  2.   

    select * from ta a, tb b  where charindex(','+a.col+',',b.col)>0 
      

  3.   

    select * from ta a, tb b  where charindex(','+a.col+',',','+b.col+',')>0 
      

  4.   


    declare @a table 
    (
    A nvarchar(50),
    B nvarchar(50)
    )insert into @A
    select '11,23,99,211,311,801','11' union all
    select '21,23,109,211,311,801','23'declare @s nvarchar(50)select top 1 @s= B from @aselect * from @a
    where (',' + A + ',') LIKE '%,'+ B + ',%'
    and B = @s 结果:
    11,23,99,211,311,801 11