我在Windows Server 2008 Enterprise上使用SQL Server 2008 Enterprise。在存储过程中,我需要将参数传递给select-where-like语句。例如,
@department是存储过程输入参数,其类型为varchar(20),
select * from sometable where somecolumn LIKE '%@department%'
但似乎我上面的陈述不起作用,任何想法如何将参数@department传递给like语句?
提前谢谢, 乔治答案 0 :(得分:8)
select * /*But don't use * in production!*/
from sometable
where somecolumn
LIKE '%' + @department + '%'
答案 1 :(得分:4)
你连接字符串:
select * from sometable where somecolumn LIKE '%' + @department + '%'
答案 2 :(得分:2)
这是一个变量,它超出了引号。
select * from sometable where somecol like '%' + @department + '%'
或者,更优选地,将%s添加到变量中并直接使用
答案 3 :(得分:2)
尝试:
select * from sometable where somecolumn LIKE '%' + @department + '%'
答案 4 :(得分:2)
你可以这样做:
select * from sometable where somecolumn LIKE '%' + @department + '%'
答案 5 :(得分:0)
select * from sometable
where CHARINDEX(@department,somecolumn)>0
您也可以使用CHARINDEX功能。