读书人

存储过程不定参数有关问题

发布时间: 2013-06-25 23:45:41 作者: rapoo

存储过程不定参数问题
我在存储过程中需要用到一个查询:

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

读书人网 >SQL Server

热点推荐