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

Откуда:
Сообщений: 1
Добрый день. Как можно выполнить примерно следующее:

declare @a int
set @a = '5'
select * from numbers where number like '%@a%'

Спасибо.
1 июн 11, 12:50    [10744607]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL.Как оператору LIKE подсунуть переменную?  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
knoppix,
declare @a int
set @a = '5'
select * from numbers where number like '%'+convert(varchar(10),@a)+'%'
интересно, зачем вы перемнную как инт объявили и присваиваете ей строку =)
1 июн 11, 12:53    [10744631]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL.Как оператору LIKE подсунуть переменную?  [new]
evgenybe
Member

Откуда: Израиль. Хадера.
Сообщений: 198
knoppix,
Вот так и сделать, как у тебя написано. Но...
1. LIKE работает только с текстом, то есть декларировать подставляемую переменную как int - ошибка.
2. Соответственно поле по которому ты ищешь тоже должно быть не числовым, а текстовым.

В противном случае тебе придется использовать CAST для приведения к текстовому виду.
1 июн 11, 12:57    [10744683]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL.Как оператору LIKE подсунуть переменную?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
knoppix,

Почему @a int? Чтоб серверу без дела не сидеть и два раза делать неявную конвертацию? Почему сразу строковую переменную не инициализировать необходимой строкой?

Сообщение было отредактировано: 1 июн 11, 12:58
1 июн 11, 12:58    [10744691]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить