数据库有记录
id goodid
1  11
2  23
3  35
现在有一个goodid数据
string goodidArr="17,23";
如果数据库不存在该ID则返回该ID,存在的不返回
结果要求返回17,这个SQL怎么写啊。

解决方案 »

  1.   

    declare @r varchar(1000)
    select @r = '17,23,123,35,232'
    select @r = ',' + @r + ','
    select @r = replace(@r, ',' + goodid + ',', ',') from tb
    print @r
      

  2.   


    --> 测试数据:@T
    declare @T table([id] int,[goodid] int)
    insert @T
    select 1,11 union all
    select 2,23 union all
    select 3,35 UNION ALL
    SELECT 4,46 UNION ALL
    SELECT 5,58 DECLARE @p VARCHAR(30) 
    SET @p = '17,23,47,58'SELECT  [goodid]
    FROM    @T
    WHERE   CHARINDEX(',' + LTRIM([goodid]) + ',', ',' + @p + ',') > 0/*
    goodid
    -----------
    23
    58
    */--可以得到23,58,从@p中去掉这两个就是你要的结果了。