日期:2014-05-18  浏览次数:20402 次

请问如何给存储过程内的一个函数变量赋予多个固定值
请问如何给存储过程内的一个函数变量赋予多个固定值
T1内有:
A B C
a1 b1 c1
a2 b2 c2
a3 b3 c3
a4 b4 c4
a5 b5 c5
a6 b6 c6
....
SQL code
create proc EXM
@a char(10)
as
select * from T1
where c in (@a)


我现在想给@a赋值,也在T1里面取,但是只取c2,c5,c6...这样,请问可以实现吗?求教怎么写。谢谢

------解决方案--------------------
set @a='c1,c2,c3'
declare @b varchar(8000)
set @b='select * from t1 where c in ('''+replace(@a,',',''',''')+''')'
exec(@b)

这执行不了就把错误信息贴出来
------解决方案--------------------
SQL code

declare @b varchar(8000)
declare @a varchar(100)
set @a='c1,c2,c3'
set @b='select * from t1 where c in ('''+replace(@a,',',''',''')+''')'
exec (@b)