首页 新闻 会员 周边 捐助

关于sql查询的一个问题

0
[待解决问题]

下面这段话执行,查询不到数据

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

瓜&瓜的主页 瓜&瓜 | 菜鸟二级 | 园豆:204
提问于:2012-12-13 14:42
< >
分享
所有回答(4)
0

报什么错误吗?按照错误去修改

chenping2008 | 园豆:9836 (大侠五级) | 2012-12-13 14:45

没有报任何错误!

支持(0) 反对(0) 瓜&瓜 | 园豆:204 (菜鸟二级) | 2012-12-20 21:57

@瓜&瓜: 既然不报错误,要么条件不对,要么就是本身就是没有数据的

支持(0) 反对(0) chenping2008 | 园豆:9836 (大侠五级) | 2012-12-20 22:16
0

insert into select,或者 select into 可以把查询出来的数据放到一个中间表

geass.. | 园豆:1821 (小虾三级) | 2012-12-13 21:25

开始不打算用中间表的,后来还是用了中间表!

支持(0) 反对(0) 瓜&瓜 | 园豆:204 (菜鸟二级) | 2012-12-20 22:05
0

看到这本来就查不到数据,你的set @pp只是写出了动态SQL,执行这句的SQL还没有写啊?

happydaily | 园豆:260 (菜鸟二级) | 2012-12-13 21:46

所以说第二种方法不能用嘛,下文就没写了!

支持(0) 反对(0) 瓜&瓜 | 园豆:204 (菜鸟二级) | 2012-12-20 22:00

@瓜&瓜: 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

支持(0) 反对(0) happydaily | 园豆:260 (菜鸟二级) | 2012-12-21 08:11
0

第一种方法必须查不到,永远是false 。那Where条件是 ‘1’=‘1 and EmplyeeCodeS in (''1'',''4'') and SOEID like ''%YN86536%'''。你调试一下就看出来了

truename | 园豆:168 (初学一级) | 2012-12-14 11:39

很蛋疼的事情是,公司的软件管控的很严格,不能调试的!我采用全局临时表弄出来了!

支持(0) 反对(0) 瓜&瓜 | 园豆:204 (菜鸟二级) | 2012-12-20 21:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册