2016-02-29 2 views
0

Я тестирую метод метода в магазине. Я хотел бы видеть данные приводят как:Как использовать параметры в методе хранения в процедуре хранения

Пример Результат Джон:

  • Джон Ника
  • Papa John
  • Harly Джон Фреди

Я дон Не хотите использовать метод LIKE. Можем ли мы использовать запуск с или с помощью оператора (*) с параметрами в SP?


СОДЕРЖИТ (имя, @ имя) // запрос работает

, но если я могу попробовать, как это:

СОДЕРЖИТ (имя, « "Джон" ИЛИ "джон *" ') // запрос работает
СОДЕРЖИТ (имя,' "@ имя" ИЛИ "@ имя *" ') // запрос не работает

С параметрами такой же запрос не работает в SP. Можно ли сделать это в SP?

Спасибо,

+0

Вы могли бы попытаться положить все это в переменной. Например, 'DECLARE @nameX NVARCHAR (4000) = '"' + @name + '"ИЛИ"' + @name + '* "' ', затем используя' CONTAINS (name, @nameX) ' – ZLK

+0

ZLK, это выглядит правильный ответ. Почему бы вам не ответить на этот вопрос, и я проголосую за него. – cameront

ответ

1

С CONTAINS, чтобы пройти через уайлдкард с переменным, вам нужно сделать подстановочную часть переменного.

Самый простой способ сделать это в хранимой процедуре - это добавить переменную (или изменить текущую переменную).

Например,

DECLARE @nameX NVARCHAR(4000) = '"' + @name + '" OR "' + @name + '*"' 
... 
CONTAINS(name, @nameX) 
+0

спасибо, запрос работает без проблем. ура – Cagatay

Смежные вопросы