一串由id 组成的字符串 '1,5,78,87,656,90' 
任何检查其中的每一个id 都在表table的 CMID列中?

解决方案 »

  1.   

    select count(*) from table where cmid in (1,5,78,87,656,90)
      

  2.   

    string id = "1,5,78,87,656,90";
    string sql = "select count(*) from table where cmid in ("+id+")";
      

  3.   

    对  每一个id 都在 表中 ,才返回 true
      

  4.   

    判断select count(*) from table where cmid in (1,5,78,87,656,90)返回的是否是6,即是否是"1,5,78,87,656,90".Split(',').Length。当然前提是cmid在表中唯一。
      

  5.   

    给你个思路 一句话SQL不会  存储过程的话到可以  1、//先用分组 查找你一串ID的数据 得到一个数据集
    select ChannelID from dbo.Live_Rec_Task where ChannelID in(1,2,3) group by ChannelID
    2、然后在程序里在判断下数据集与ID的数量 相等则true 反之则false
      

  6.   

    你可以选择 写存储过程 或者 SQL+程序判断。
      

  7.   

    string id = "1,5,78,87,656,90";
    int i=id.LastIndexOf(",")+1;
    int sql = convert.toint32( "select count(*) from table where cmid in ("+id+")");
    if (i=sql)
    return true;
    else
    return false;
      

  8.   

    select distinct cmid  from table where cmid in (1,5,78,87,656,90)如果返回的条数=Id的个数就是全部在表中
      

  9.   

    这个意思么:DECLARE @sql varchar(4000)
    SET @sql = 'IF EXISTS(SELECT 1 FROM table WHERE CMID IN('+'1,5,78,87,656,90'+'))'
         + '    PRINT 1 '
         + 'ELSE'
         + '    PRINT 0 '
    EXEC   (@sql)
      

  10.   

    跟上面的思路一样,已知了有多少个id了,用in查不出来总条数,跟你已知的id个数对比(前提是id是主键或自动增长的)如果条数是一样 证明全查出来了
      

  11.   


    string a = "1,5,78,87,656,90";
    string sql = "select count(1) from table where id in ("+a+")";
      

  12.   


    IF ((SELECT count(id) FROM tb WHERE Id IN(4,101,102))!=(SELECT len('4,101,102')-len(replace('4,101,102',',',''))+1)) 
    PRINT 'false' 
    ELSE 
    PRINT 'true'