declare @str varchar(300) set @sql='(''a'',''b'',''c'’)' exec('select * From a where a.column_a in '+@sql+'')
要使用动态语句实现 function不支持,使用procedure,其中语句set @s='''a'',''b'',''c''' exec p_Selfproc @screate procedure p_Selfproc @s nvarchar(100) as ....... exec('select * from a where column_a in ('+@s+')') ....... go
declare @s varchar(8000) set @s='''a'',''b'',''c'''exec('select * from a where a.column_a in ('+@s +')')
select *
From a
where charindex(','+rtrim(a.column_a+',',','+@s+',')>0
--参数传递用:
set @s='a,b,c'
则@s的值是'a,b'
你看('a','b','c’) 中有这样的值吗?
改成这个看看
@s只是其中一个叁数而已.
set @sql='(''a'',''b'',''c'’)'
exec('select * From a where a.column_a in '+@sql+'')
function不支持,使用procedure,其中语句set @s='''a'',''b'',''c'''
exec p_Selfproc @screate procedure p_Selfproc
@s nvarchar(100)
as
.......
exec('select * from a where column_a in ('+@s+')')
.......
go
set @s='''a'',''b'',''c'''exec('select * from a where a.column_a in ('+@s +')')
function不可以動態sql所以動態sql是不行的 zjcxc(邹建) 方法正在試了,真的很感謝!
請問:zjcxc(邹建)
in的语法是
in(参数列表)
所以 in(@s)
@s只是其中一个叁数而已.
只能適應一個參數列表時的狀況了,是不是? 現在想通了,很感謝!