下面这段话执行,查询不到数据
declare @param varchar(100)
set @param = ' and EmplyeeCodeS in (''1'',''4'') and SOEID like ''%YN86536%''';
select * from test where '1'='1' + @param
但是这段话是能查询出来的
select * from ProfileAdminBasicInfo where '1'='1' and EmplyeeCodeS in ('1','4') and SOEID like '%YN86536%'
这种方法不能用,因为我想把查询出来的数据放到一个中间表
declare @param varchar(100)
declare @pp varchar(100)
set @param = ' and EmplyeeCodeS in (''1'',''4'') and SOEID like ''%YN86536%''';
set @pp = 'select * from ProfileAdminBasicInfo where ''1''=''1'' '+@param+''
print @pp
报什么错误吗?按照错误去修改
没有报任何错误!
@瓜&瓜: 既然不报错误,要么条件不对,要么就是本身就是没有数据的
insert into select,或者 select into 可以把查询出来的数据放到一个中间表
开始不打算用中间表的,后来还是用了中间表!
看到这本来就查不到数据,你的set @pp只是写出了动态SQL,执行这句的SQL还没有写啊?
所以说第二种方法不能用嘛,下文就没写了!
@瓜&瓜: set @sql = 'select @result=case when charindex(''2'',@str)>0 and charindex('',''+cast(a.shr as varchar)+'','','',''+@result)=0 then @result+cast(a.shr as varchar)+'','' else @result end from '+@tablename+' as a inner join '+@tablename+'1 as b on a.id=b.bianhao and a.id=@id and b.a1=6'
exec sp_executesql @sql,N'@tablename varchar(50),@id int, @str varchar(1000), @result varchar(100) output',@tablename,@id,@str,@result output
第一种方法必须查不到,永远是false 。那Where条件是 ‘1’=‘1 and EmplyeeCodeS in (''1'',''4'') and SOEID like ''%YN86536%'''。你调试一下就看出来了
很蛋疼的事情是,公司的软件管控的很严格,不能调试的!我采用全局临时表弄出来了!