SQL查询字段为变量的语句
SELECT ID, area
FROM Area
WHERE (@condition LIKE '%' + @keyword + '%')
这里查询没有报错,但是搜索结果为空(变量都输入正确了)。如果把@condition换成area,那就能正常搜出结果。
貌似存储过程里这么用没有问题,但单个SQL语句没有预期结果,不知道当如何修改了。
------解决方案-------------------- 这样就有记录:
declare @condition varchar(100)
declare @keyword varchar(100)
set @condition = 'abcd'
set @keyword = 'cd'
SELECT *
from area
WHERE (@condition LIKE '%' + @keyword + '%')
------解决方案-------------------- 会不会是类型转换的问题?
------解决方案-------------------- 引用: Quote: 引用:
我是在visual studio 2010中执行这样的语句的,执行的时候会弹出窗口让填变量的值。
不过照你上面的复制粘贴进去,结果还是为空。
我的意思是,
set @condition = 'abcd'
set @keyword = 'cd'
这两句的值我改成了该改的了。
你打开sql profiler,跟踪一下,看看到底执行的语句是怎么样的
------解决方案-------------------- 改成这样试试,然后把print换成exec
DECLARE @sql VARCHAR(max)
declare @condition varchar(100)
declare @keyword varchar(100)
set @condition = 'abcd'
set @keyword = 'cd'
SET @sql='
SELECT *
from area
WHERE ('+@condition+' LIKE ''%' + @keyword + '%'')'
PRINT @sql