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

Откуда:
Сообщений: 47
Добрый день,

Подскажите, пожалуйста, как правильно написать LiKE

SELECT 'Зарегистрирован' as [status], DOC_RC.DOC_DATE, DOC_RC.FREE_NUM

FROM DOC_RC INNER JOIN
REF_CORRESP ON DOC_RC.ISN_DOC = REF_CORRESP.ISN_DOC_INP

WHERE (REF_CORRESP.CORRESP_NUM like '%'+ @CORRESP_NUM)

Дело в том, что при таком написании возвращается документ, оканчивающийся на нужную последовательность знаков. В принципе это правильно. Но хотелось бы переписать Like таким образом, чтобы возвращался не только документ, оканчивающийся на нужную последовательность цифр, но и документ = вводимой последовательности чисел. Т.е.
при вводе 123, выводилось бы не только, например, xxxx123, но и документ с номером 123.
22 окт 12, 16:45    [13357676]     Ответить | Цитировать Сообщить модератору
 Re: Проблемка с Like  [new]
Eyere
Member

Откуда:
Сообщений: 47
Eyere
Добрый день,

Подскажите, пожалуйста, как правильно написать LiKE

SELECT 'Зарегистрирован' as [status], DOC_RC.DOC_DATE, DOC_RC.FREE_NUM

FROM DOC_RC INNER JOIN
REF_CORRESP ON DOC_RC.ISN_DOC = REF_CORRESP.ISN_DOC_INP

WHERE (REF_CORRESP.CORRESP_NUM like '%'+ @CORRESP_NUM)

Дело в том, что при таком написании возвращается документ, оканчивающийся на нужную последовательность знаков. В принципе это правильно. Но хотелось бы переписать Like таким образом, чтобы возвращался не только документ, оканчивающийся на нужную последовательность цифр, но и документ = вводимой последовательности чисел. Т.е.
при вводе 123, выводилось бы не только, например, xxxx123, но и документ с номером 123.


Переменную объявила с типом @CORRESP_NUM varchar(15)
22 окт 12, 16:49    [13357714]     Ответить | Цитировать Сообщить модератору
 Re: Проблемка с Like  [new]
Crimean
Member

Откуда:
Сообщений: 13148
а в чем проблема?

declare @a table ( s varchar(50) )
insert into @a select 'xxx123'
insert into @a select '123'
insert into @a select '---'
select * from @a where s like '%123'


s
--------------------------------------------------
xxx123
123
22 окт 12, 16:51    [13357729]     Ответить | Цитировать Сообщить модератору
 Re: Проблемка с Like  [new]
Eyere
Member

Откуда:
Сообщений: 47
Проблема в том, что я не знаю заранее, какой номер в переменной придет. Знаю только, что в системе есть документ, оканчивающийся на передаваемую через эту переменную последовательность цифр. А мне нужно предусмотреть еще и случай, когда мне пришел номер, а в системе имеется документ точь-в-точь с полученным номером.
Мой запрос его не возвращает, говорит, что документ не найден. Т.к. подразумевает, что должны быть впереди какие-то еще символы видимо...
22 окт 12, 17:01    [13357805]     Ответить | Цитировать Сообщить модератору
 Re: Проблемка с Like  [new]
Александр52
Member

Откуда: Кокосовые острова ส็็็็็
Сообщений: 5133
Eyere
Проблема в том, что я не знаю заранее, какой номер в переменной придет. Знаю только, что в системе есть документ, оканчивающийся на передаваемую через эту переменную последовательность цифр. А мне нужно предусмотреть еще и случай, когда мне пришел номер, а в системе имеется документ точь-в-точь с полученным номером.
Мой запрос его не возвращает, говорит, что документ не найден. Т.к. подразумевает, что должны быть впереди какие-то еще символы видимо...

% вначале ставьте и всё. Захватит ваши оба случая, как выше написал Crimean
22 окт 12, 17:04    [13357828]     Ответить | Цитировать Сообщить модератору
 Re: Проблемка с Like  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
Небось, там какие-нибудь лидирующие пробелы есть...
Попробуйте так:
'%'+LTRIM(@CORRESP_NUM)
22 окт 12, 17:07    [13357860]     Ответить | Цитировать Сообщить модератору
 Re: Проблемка с Like  [new]
Eyere
Member

Откуда:
Сообщений: 47
iap
Небось, там какие-нибудь лидирующие пробелы есть...
Попробуйте так:
'%'+LTRIM(@CORRESP_NUM)


Ой, и вправду помогло! Спасибо!
22 окт 12, 17:15    [13357920]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить