从一个方法里接受一个List<int>集合作为查询语句的参数。比如 string sql ="select v_dvrcamera.id from v_dvrcamera,v_dvr where v_dvrcamera.Cam_DvrID in (" + strSelect + ")" 参数strSelect 即为一个List<int>.各路高手,这个查询语句我该怎么写?另外当查询出数据后,程序中我要根据List<int>分组,假设List<int>={3,4,5},我想让strSelect 为3,4,5的数据分别放到一个集合中,这又该怎么样弄?
--看完它你就知道该怎么做了.构造使用IN子句的动态Transact-SQL方法进行编号查询--a. 要查询的字段类型是数字型--查询的值列表
DECLARE @idlist varchar(100)
SET @idlist='1,2,3'--拼接并执行动态Transact-SQL语句
EXEC('SELECT * FROM tbname WHERE fdname IN('+@idlist+')')
GO--b. 要查询的字段类型是字符型
--查询的值列表已经加上了字符串边界符
DECLARE @idlist varchar(100)
SET @idlist='''a'',''b''''a'',''c'''--拼接并执行动态Transact-SQL语句
EXEC('SELECT * FROM tbname WHERE fdname IN('+@idlist+')')
GO--查询的值列表没有字符串边界符
DECLARE @idlist varchar(100)
SET @idlist='a,b''a,c'--由于是字段类型是,所以在拼接时,必须为其加上字符串边界符(')
DECLARE @s varchar(1000)
SET @s=''''
+REPLACE(REPLACE(@idlist,'''',''''''),',',''',''')
+''''--拼接并执行动态Transact-SQL语句
EXEC('SELECT * FROM tbname WHERE fdname IN('+@s+')')
GO
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/htl258/archive/2009/06/06/4244580.aspx