请注意: 假设数据库表tb中有3条数据. 
第一条记录的列A:   张三,李四,王五
第二条记录的列A:   大张三,李四二,王五六,赵六
第三条记录的列A:   张三附,包李四,五六
如果我只想查询到列A中包含张三的,请问怎么写这个查询?我用like 张三, 会把3条结果都显示出来,不是我要的结果,我希望就显示出第一条姓名完全等于张三的. 求解  谢谢啊!

解决方案 »

  1.   

    select * from tb where ','+A+',' like '%,张三,%'
      

  2.   

    or:
    select * from tb where charindex(',张三,',','+A+',')>0
      

  3.   

    你没有查,怎么知道查不出结果来呢.create table tb(A nvarchar(30))
    insert into tb select '张三,李四,王五'
    insert into tb select '大张三,李四二,王五六,赵六'
    insert into tb select '张三附,包李四,五六'
    go
    select * from tb where ','+A+',' like '%,张三,%'
    select * from tb where charindex(',张三,',','+A+',')>0
    /*
    A
    ------------------------------
    张三,李四,王五(1 行受影响)A
    ------------------------------
    张三,李四,王五(1 行受影响)*/
    go
    drop table tb