存储过程不定参数问题
我在存储过程中需要用到一个查询:
select …… from myTable where querytype in (1,2,4,6,7……)
而对于 条件( 1,2,4,6,7……) 是需要我传进去的不定参数(int型), 这个条件我该如何传递?存储过程内部查询该如何写?
谢谢各位!
------解决方案--------------------将这个'1,2,4,6,7…,'作为字符串传进去喽,当然。。。。
在存储过程里
declare @sql varchar(max)
set @sql ='select …… from myTable where querytype in '+@参数
exec(@sql)
还是很简单的
------解决方案--------------------最简单的方法
DECLARE @ids VARCHAR(100)
SET @ids='1,2,4,6,7'
DECLARE @sql VARCHAR(1000)
SET @sql='select * from myTable where querytype in ('''+@ids+''')'
EXEC(@sql)
------解决方案--------------------假设( 1,2,4,6,7……)是存在MyType表里,查询Type的语句是(select querytype from MyType where field1=@查询Type的条件)。那么,
select t1.* from myTable t1 join (select querytype from MyType where field1=@查询Type的条件) as t2 on t1.querytype =t2.querytype