select count(*) from table where cmid in (1,5,78,87,656,90)
string id = "1,5,78,87,656,90"; string sql = "select count(*) from table where cmid in ("+id+")";
对 每一个id 都在 表中 ,才返回 true
判断select count(*) from table where cmid in (1,5,78,87,656,90)返回的是否是6,即是否是"1,5,78,87,656,90".Split(',').Length。当然前提是cmid在表中唯一。
给你个思路 一句话SQL不会 存储过程的话到可以 1、//先用分组 查找你一串ID的数据 得到一个数据集 select ChannelID from dbo.Live_Rec_Task where ChannelID in(1,2,3) group by ChannelID 2、然后在程序里在判断下数据集与ID的数量 相等则true 反之则false
你可以选择 写存储过程 或者 SQL+程序判断。
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;
select distinct cmid from table where cmid in (1,5,78,87,656,90)如果返回的条数=Id的个数就是全部在表中
这个意思么: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)
string sql = "select count(*) from table where cmid in ("+id+")";
select ChannelID from dbo.Live_Rec_Task where ChannelID in(1,2,3) group by ChannelID
2、然后在程序里在判断下数据集与ID的数量 相等则true 反之则false
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;
SET @sql = 'IF EXISTS(SELECT 1 FROM table WHERE CMID IN('+'1,5,78,87,656,90'+'))'
+ ' PRINT 1 '
+ 'ELSE'
+ ' PRINT 0 '
EXEC (@sql)
string a = "1,5,78,87,656,90";
string sql = "select count(1) from table where id in ("+a+")";
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'