我们有C#程序,每年,每月等基础上定期生成报告。 这是报告的内联SQL示例。
SELECT DOB, MEMBNO FROM BASIC WHERE DOJ = @ReportRunDate AND STATUS IN @StatusList
使用SqlParameter我们可以将ReportRunDate作为参数发送,但是当来自@StatusList时,我们找不到将其作为参数传递的正确方法。
对于例如@statusList,其值来自输入,看起来像'AB',12','Z1'
我们可以使用下面的字符串连接
string statusList = "'AB',12','Z1";
string sqlCmdText = SELECT DOB, MEMBNO FROM BASIC WHERE DOJ = @ReportRunDate AND STATUS IN (" + statusList + ")";
但我们更喜欢将SQL的所有输入值用作参数。
注意: - 我提到的查询是一个例子,原始查询是一个页面长度,并有多个IN子句。另外,根据规范,我们仅限于使用内联查询。
请在
上提供指导谢谢大家。
答案 0 :(得分:0)
这里你去......下面的查询应该有效..
select * from YourTableName where ','+@YourVariableName+',' like '%,'+YourColumnName+',%'
以下是测试上述查询的脚本
CREATE TABLE #TT(test varchar(100))
insert into #TT values('abkk'),('cdll'),('ab'),('cd')
select * from #TT
declare @input varchar(100)
set @input = 'abkk,cdll'
select * from #tt where ','+@input+',' like '%,'+test+',%'
如果对您有帮助,请将此帖标记为答案!