Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 поиск подстроки в таблице с условием (слева и справа от подстроки не цифры)  [new]
akello
Guest
Есть таблица, содержащая текстовое поле
В поле перечислены номера (к примеру 1,4, 50,3)
Как выбрать записи где в строке есть номер 5 - не 50 а именно 5.
В строке могу быть самы разные разделители - запятые, точки с запятой... и т.д.

запрос типа выдает что в подстроке есть входжение цифры 5 (где номер равен 50, а не 5)

select distinct * from table1 where  numstring like "%"+ cast(5 as char(10))+"%"


Т.е надо проверять что слева и справа не цифровой знак
30 июл 03, 07:22    [280820]     Ответить | Цитировать Сообщить модератору
 Re: поиск подстроки в таблице с условием (слева и справа от подстроки не цифры)  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
А если так?
select distinct * from table1 where  numstring like '%5[^0-9]%'
30 июл 03, 07:37    [280826]     Ответить | Цитировать Сообщить модератору
 Re: поиск подстроки в таблице с условием (слева и справа от подстроки не цифры)  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Если с обеих сторон, то соответственно так
select distinct * from table1 where  numstring like '%[^0-9]5[^0-9]%'
30 июл 03, 07:43    [280827]     Ответить | Цитировать Сообщить модератору
 Re: поиск подстроки в таблице с условием (слева и справа от подстроки не цифры)  [new]
akello
Guest
эkемент [^0-9] понимает как часть подстроки и не возращает значений вообще, даже если вместо 5 поставить 50
30 июл 03, 08:10    [280844]     Ответить | Цитировать Сообщить модератору
 Re: поиск подстроки в таблице с условием (слева и справа от подстроки не цифры)  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Тогда
select distinct * from table1 where  numstring like '%[^0-4]5[^0-4]%'

or numstring like '%[^6-9]5[^6-9]%'
30 июл 03, 08:36    [280852]     Ответить | Цитировать Сообщить модератору
 Re: поиск подстроки в таблице с условием (слева и справа от подстроки не цифры)  [new]
akello
Guest
то же самое
30 июл 03, 08:47    [280865]     Ответить | Цитировать Сообщить модератору
 Re: поиск подстроки в таблице с условием (слева и справа от подстроки не цифры)  [new]
bazaea
Member

Откуда: Бокситогорск
Сообщений: 500
SELECT DISTINCT * FROM table1 WHERE ISNUMERIC(SUBSTRING ( numstring , CHARINDEX('5',numstring ) , 2) =FALSE
30 июл 03, 10:06    [280963]     Ответить | Цитировать Сообщить модератору
 Re: поиск подстроки в таблице с условием (слева и справа от подстроки не цифры)  [new]
bazaea
Member

Откуда: Бокситогорск
Сообщений: 500

select distinct * from table1 where numstring like '%[^0-4]5[^0-4]%'
AND numstring like '%[^6-9]5[^6-9]%'
AND numstring like '%[^0-4]5[^6-9]%'
AND numstring like '%[^6-9]5[^0-4]%'
30 июл 03, 10:43    [281046]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить