SQL查询字段为变量的话语
SQL查询字段为变量的语句
SELECT ID, area
FROM Area
WHERE (@condition LIKE '%' + @keyword + '%')
这里查询没有报错,但是搜索结果为空(变量都输入正确了)。如果把@condition换成area,那就能正常搜出结果。
貌似存储过程里这么用没有问题,但单个SQL语句没有预期结果,不知道当如何修改了。
------解决方案--------------------
这样就有记录:
------解决方案--------------------
会不会是类型转换的问题?
------解决方案--------------------
你打开sql profiler,跟踪一下,看看到底执行的语句是怎么样的
------解决方案--------------------
改成这样试试,然后把print换成exec
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 + '%')
------解决方案--------------------
会不会是类型转换的问题?
------解决方案--------------------
你打开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