exec sp_executesql N'select FunctionName from T_Sys_Function where Id in(@ou)' , N'@ou nvarchar(20)',@ou=N'A1'',''B1'
写成 ,@ou=N'A1,B1'
@ou=N‘’'A1'',''B1'‘’
这几种都 查不出结果
当参数 中 遇到 in 对应的字段是 字符类型 ,就是查询不出来结果 。求高手赐教 !!!
------解决思路----------------------
这个是明显啊。
你在查询窗口里面可以写成
declare @a varchar(max);
set @a=1,2?
set @a='1,2'?
set @a='''1'',''2'''?
select * from tb where a in(@a)
都是不形的,这个语法都不对。
------解决思路----------------------
肯定不行的,IN()里面需要一些变量或常量,
而以一个内容带逗号的变量就想当多个量,简直是异想天开
你既然都动态执行了,就应该直接拼接进SQL了
DECLARE @SQL NVARCHAR(4000),@ou NVARCHAR(4000)
SET @ou='''A1'',''B1'''
SET @SQL=N'select FunctionName from T_Sys_Function where Id in('+@ou+')'
exec(@SQL)