我有一个SQL Server存储过程,我想将一个varchar
逗号分隔的值传递给一个IN
函数.例如:
DECLARE @Ids varchar(50);
SET @Ids = '1,2,3,5,4,6,7,98,234';
SELECT *
FROM sometable
WHERE tableid IN (@Ids);
Run Code Online (Sandbox Code Playgroud)
这当然不起作用.我收到错误:
将varchar值'1,2,3,5,4,6,7,98,234'转换为数据类型int时转换失败.
如何在不诉诸构建动态SQL的情况下完成此任务(或相对类似的东西)?
有Getfunctionname(userid, startdate, enddate)
返回表的函数
我的问题是我可以传递具有多个值的变量吗?
IE
getfunctionname(@userid, startdate, enddate)
Run Code Online (Sandbox Code Playgroud)
变量的值@userid
就像
1
2
3
4
5
Run Code Online (Sandbox Code Playgroud)
(实际上是使用split
函数将值从 is 中分离出来1,2,3,4,5
)
如果可以请告诉我