使用的数据库是Sybase
CREATE PROCEDURE getSomething @keyList varchar(4096) AS SELECT * FROM mytbl WHERE name IN (@keyList)
解决方案
将逗号分隔的列表传递到返回表值的函数中。
CREATE PROCEDURE getSomething @keyList varchar(4096) AS SELECT * FROM mytbl WHERE name IN (fn_GetKeyList(@keyList))
调用
exec getSomething 'John,Tom,Foo,Bar'
或者
将需要确保@keylist中的项目用引号引起来,即使它们是单个值也是如此。
CREATE PROCEDURE getSomething @keyList varchar(4096) AS declare @sql varchar(4096) select @sql = "SELECT * FROM mytbl WHERE name IN (" + @keyList +")" exec(@sql)
调用
exec getSomething 'John' exec getSomething 'John','Tom'
日期:2020-03-25 09:36:38 来源:oir作者:oir