如代入参数的一的SQL是这样的:
where id in(275,276)
现在 in 后面的内容要用参数传入,定义成什么类型,是varchar吗?
SQL语句要怎么写?
不好意思,上面可能没说清楚,in后面的参数个数是不确定的
declare @sql varchar
set @sql='select * from t where xxx in('+@invalue+')'
exec @sql
是在SQL中吗?若在C#中,应该比较容易解决。
是存储过程中
@artwl: 是否可以用CTE呢。
where id in (@p1,@p2)
List<int> parmList = new List<int>();
parmList.Add(1);parmList.Add(14);parmList.Add(15);parmList.Add(100);
SqlParameter[] parms = new SqlParameter[parmList.Count];
string sql = "... where id in("
for(int i=0;i<parmList.Count;i++){
if (i>0)sql+=",";
string parmName ="@p"+i.ToString();
sql += parmName;
parms[i] = new SqlParameter(parmName,SqlDbType.Int,4);
parms[i].Value = parmList[i];
}
sql += ")"
下面可以使用sql和SqlParameter数组执行命令了
希望你懂了
declare @a varchar(10)
declare @b varchar(10)
。。。where id in(@a,@b)
可以定义成vachar啊
where id in (@Ids)
这样会出错:Conversion failed when converting the varchar value '275,276' to data type int.