where charindex('8','1,6,8,3') > 0---------这样可以
where charindex('8',caid)>0----------------这样不可以为什么啊?

解决方案 »

  1.   

    不知道你什么意思?@caid是参数吗?CREATE TABLE  zjjl
    (
    id INT NOT NULL PRIMARY KEY,
    [name] NVARCHAR(8),
    dj INT,
    shl INT,
    jin INT,
    ljsl INT,
    ljjin  INT
    )
    INSERT INTO zjjl
    SELECT 1, 'ok', 2, 3, 6, 3, 6 UNION ALL 
    SELECT 2, 'ok', 2, 8, 16, 11, 22 UNION ALL 
    SELECT 3, 'oi', 5, 10, 50, 10, 50
    SELECT * FROM zjjlselect * from zjjl t where ljsl=(select MAX(ljsl) FROM zjjl)/*
    id          name     dj          shl         jin         ljsl        ljjin
    ----------- -------- ----------- ----------- ----------- ----------- -----------
    2           ok       2           8           16          11          22(1 行受影响)
    */
    DECLARE @caid VARCHAR(20)
    SET @caid='1,6,8,3'
    select * from zjjl where charindex('8',@caid)>0--这句和下面结果是一样的select * from zjjl where charindex('8','1,6,8,3') > 0/*
    id          name     dj          shl         jin         ljsl        ljjin
    ----------- -------- ----------- ----------- ----------- ----------- -----------
    1           ok       2           3           6           3           6
    2           ok       2           8           16          11          22
    3           oi       5           10          50          10          50(3 行受影响)
    */
      

  2.   

    得caid字段中含8才有数据出来.....
      

  3.   

    是的啊
    看看charindex函数的用法吧。你就懂了返回字符串中指定表达式的起始位置。 
    语法
    CHARINDEX ( e­xpression1 , e­xpression2 [ , start_location ] ) 
    http://www.cnblogs.com/smhy8187/articles/930929.html