Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Правильный синтаксис оператора Like  [new]
serverokAsservelat
Member

Откуда:
Сообщений: 567
Подскажите пожалуйста синтаксис использования оператора Like для хранимых процедур. Японимаю, вопрос сильно простяцкий, что б на форуме его ганять, но чет в инете не могу найти примеры использования оператора Like в сочетании с входными параметрами.

Другими словами - есть хранимая процедура которая вытягивает записи при условии, что в тексте (поле body) встречается слово (значение) из входного параметра
...Where body Like '%'+@inputParam+'%'
, где @inputParam - входной параметр.

Правильно, или - нет?
21 окт 09, 21:29    [7820587]     Ответить | Цитировать Сообщить модератору
 Re: Правильный синтаксис оператора Like  [new]
flexgen
Member

Откуда: Город на песке
Сообщений: 765
serverokAsservelat
Подскажите пожалуйста синтаксис использования оператора Like для хранимых процедур. Японимаю, вопрос сильно простяцкий, что б на форуме его ганять, но чет в инете не могу найти примеры использования оператора Like в сочетании с входными параметрами.

Другими словами - есть хранимая процедура которая вытягивает записи при условии, что в тексте (поле body) встречается слово (значение) из входного параметра
...Where body Like '%'+@inputParam+'%'
, где @inputParam - входной параметр.

Правильно, или - нет?


Неправильно, должно быть так:
...Where body Like char(39)+'%'+@inputParam+'%'+char(39)

Предположим что @inputParam = 'long', в результате WHERE-clause будет выглядеть так:
Where body Like '%long%'

В твоем же варианте результат будет:
Where body Like %long%
и будет генерироваться ошибка. И не забывай что оператор LIKE применяется только для символьных значений.
21 окт 09, 23:19    [7820902]     Ответить | Цитировать Сообщить модератору
 Re: Правильный синтаксис оператора Like  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36808
flexgen
serverokAsservelat
Подскажите пожалуйста синтаксис использования оператора Like для хранимых процедур. Японимаю, вопрос сильно простяцкий, что б на форуме его ганять, но чет в инете не могу найти примеры использования оператора Like в сочетании с входными параметрами.

Другими словами - есть хранимая процедура которая вытягивает записи при условии, что в тексте (поле body) встречается слово (значение) из входного параметра
...Where body Like '%'+@inputParam+'%'
, где @inputParam - входной параметр.

Правильно, или - нет?


Неправильно, должно быть так:
...Where body Like char(39)+'%'+@inputParam+'%'+char(39)

Предположим что @inputParam = 'long', в результате WHERE-clause будет выглядеть так:
Where body Like '%long%'

В твоем же варианте результат будет:
Where body Like %long%
и будет генерироваться ошибка. И не забывай что оператор LIKE применяется только для символьных значений.
Это с какого такого перепугу пропадут кавычки из
select ... where ... like '%' + @param + '%' 
?
21 окт 09, 23:25    [7820916]     Ответить | Цитировать Сообщить модератору
 Re: Правильный синтаксис оператора Like  [new]
serverokAsservelat
Member

Откуда:
Сообщений: 567
Дико извиниясь, ачто означает в данном случае запись char(39)? Это длинна, или номер символа?
Правда, я такую запись первый раз вижу. Сам не sql-щик. Не местный, как говорится.

Для чего это.
P.S. Уж простите за тупость
21 окт 09, 23:42    [7820949]     Ответить | Цитировать Сообщить модератору
 Re: Правильный синтаксис оператора Like  [new]
iljy
Member

Откуда:
Сообщений: 8711
serverokAsservelat
Дико извиниясь, ачто означает в данном случае запись char(39)? Это длинна, или номер символа?
Правда, я такую запись первый раз вижу. Сам не sql-щик. Не местный, как говорится.

Для чего это.
P.S. Уж простите за тупость

Здесь - ни для чего, flexgen видимо решил что вы динамический запрос формируете. А вообще - это символ с соответствующим кодом, в данном случае одинарная кавычка.
21 окт 09, 23:50    [7820967]     Ответить | Цитировать Сообщить модератору
 Re: Правильный синтаксис оператора Like  [new]
serverokAsservelat
Member

Откуда:
Сообщений: 567
Ага, ясненько. Я, правда, именно это и имел в виду - код символа (а написал номер символа).
Но, как говорится, после боя кулаками не машут.

Поэтому, всем спасибо за помощь. Ничего сложного, как оказалось.
22 окт 09, 01:32    [7821050]     Ответить | Цитировать Сообщить модератору
 Re: Правильный синтаксис оператора Like  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Гавриленко Сергей Алексеевич
Это с какого такого перепугу пропадут кавычки из
select ... where ... like '%' + @param + '%' 
?
А они там вроде и вообще не нужны.
Я имею в виду те, которые flexgen уродливо написал как char(39).

Ищем-то не слово '@param', а то, что содержит переменная @param!
22 окт 09, 09:02    [7821478]     Ответить | Цитировать Сообщить модератору
 Re: Правильный синтаксис оператора Like  [new]
Fuelfire
Member

Откуда: г. Королёв
Сообщений: 153
iap,
+1
22 окт 09, 10:00    [7821710]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить