exec pro_test "'001','002','003'" 存储过程这样写 declare @sql nvarchar(500) select @sql='select * from test where id in('+@param+')' exec(@sql)
改:exec pro_test '''001'',''002'',''003'''
create PROCEDURE [pro_test] @id .....select * from test where id=@idend但现在参数@id里面存的是 001,002,003 且不知道有多少个,只知道是逗号隔开的想知道存储过程是如何像java一样可以根据逗号截开,然后循环加条件的
create proc pro_test (@id varchar(200)) as begin declare @sql varchar(800) set @sql='select * from test where id in('+@id+')' print @sql endexec pro_test '001,002,003' --执行结果 select * from test where id in(001,002,003)或者 exec pro_test '''001'',''002'',''003''' --执行结果 select * from test where id in('001','002','003')
存储过程这样写
declare @sql nvarchar(500)
select @sql='select * from test where id in('+@param+')'
exec(@sql)
@id .....select * from test where id=@idend但现在参数@id里面存的是 001,002,003 且不知道有多少个,只知道是逗号隔开的想知道存储过程是如何像java一样可以根据逗号截开,然后循环加条件的
create proc pro_test
(@id varchar(200))
as
begin
declare @sql varchar(800)
set @sql='select * from test where id in('+@id+')'
print @sql
endexec pro_test '001,002,003'
--执行结果
select * from test where id in(001,002,003)或者
exec pro_test '''001'',''002'',''003''' --执行结果
select * from test where id in('001','002','003')