有数据表tb字段为cp,数据如下:
1
1|2
1|3|4
2
2|3
现在我用sql语句select * from tb where cp like '1%' 
取得以下数据
1
1|2
1|3|4
但是我只想取得如下数据(就是不包括自己)
1|2
1|3|4
我如何写sql语句呢?谢谢!

解决方案 »

  1.   

    select * from tb where cp like '1%' and cp <> '1'
      

  2.   

    --> 测试数据:TB
    IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'TB') 
    AND type in (N'U')) 
    DROP TABLE TB
    GO---->建表
    create table TB([kk] varchar(5))
    insert TB
    select '1' union all
    select '1|2' union all
    select '1|3|4' union all
    select '2' union all
    select '2|3'
    GO--> 查询结果
    SELECT * FROM TB where kk like '1|%'
    SELECT * FROM TB where patindex('1|%',kk)>0
    SELECT * FROM TB where charindex('1|',kk,0)>0
    --> 删除表格
    --DROP TABLE TB
      

  3.   

    select * from tb where cp like '1%' and  charindex('|',cp)>0
      

  4.   

    declare @i int
    set @i=1
    select *
    from tb
    where charindex('|'+ltrim(@i)+'|','|'+cp+'|')>0 
    and cp!=ltrim(@i)