日期:2014-05-17  浏览次数:20344 次

where条件里 用变量和用字符串结果不一样

长话短说 先来个简单的示例:

够简单吧,没问题吧


好了 我的问题来了:

再查询语句里赋值 然后打印到控制台:



把控制台里的复制出来当条件能查到结果:



直接使用定义的变量做条件就查不到结果:



根据报的错网上找了 也没明白什么意思,求大神 如果这种写法走不通,求其他写法

------解决方案--------------------
最后一句换成下面的:
declare @str varchar(max)
set @str='select * from data2 where '+@condtion
exec (@str)
别贴图片...
------解决方案--------------------
DECLARE @Condtion nvarchar(255)
select @Condtion = A.Condtion from (
select id = row_number() over(order by condtion),* from abc) A where A.id = 1

print @condtion

declare @sql nvarchar(255)
set @sql = 'select * from Data2 '+' where '+@condtion

exec(@sql)