Как передать параметр в хранимую процедуру - PullRequest
1 голос
/ 15 июля 2010

Я использую SQL Server 2008 Enterprise на Windows Server 2008 Enterprise. В хранимой процедуре мне нужно передать параметр в оператор select-where-like. Например,

@ отдел - входной параметр процедуры магазина, его тип - varchar (20),

select * from sometable where somecolumn LIKE '%@department%' 

но, кажется, мое утверждение выше не работает, есть идеи, как передать параметр @department в утверждение like?

спасибо заранее, George

Ответы [ 6 ]

8 голосов
/ 15 июля 2010
select * /*But don't use * in production!*/
from sometable 
where somecolumn 
LIKE '%' + @department + '%' 
4 голосов
/ 15 июля 2010

Вы объединяете строки:

select * from sometable where somecolumn LIKE '%' + @department + '%'
2 голосов
/ 15 июля 2010

Вы можете сделать что-то вроде этого:

select * from sometable where somecolumn LIKE '%' + @department + '%'
2 голосов
/ 15 июля 2010

попробуй:

select * from sometable where somecolumn LIKE '%' + @department + '%'
2 голосов
/ 15 июля 2010

Это переменная, она выходит за кавычки.

select * from sometable where somecol like '%' + @department + '%'

Или, более предпочтительно, добавить% s к переменной и просто использовать ее непосредственно

0 голосов
/ 16 июля 2010
select * from sometable 
where CHARINDEX(@department,somecolumn)>0 

Вы также можете использовать функцию CHARINDEX.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...