Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Прверить есть ли цифра в строке  [new]
NeedHelpPlease
Guest
Доброго времени суток!
Есть строка из цифр например 110, 1, 108, 144, 146, 117
Как с помощью LIKE проверить, есть ли определенная цифра в этой строке, для примера проверить есть ли 110.
Я пишу
where str like '%[^0-9]110[^0-9]%'
но он не находит если цифра находится в конце или начале строки, только если перед ней есть какой-то символ, например тоже самое для цифр 1, 108, 144 и 146 прокатит. Что не так? помогите разобраться
12 янв 13, 16:47    [13759656]     Ответить | Цитировать Сообщить модератору
 Re: Прверить есть ли цифра в строке  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
NeedHelpPlease,

110 - это не цифра! Это три цифры! Или число.
where ','+str+',' like '%[^0-9]110[^0-9]%'
12 янв 13, 16:52    [13759661]     Ответить | Цитировать Сообщить модератору
 Re: Прверить есть ли цифра в строке  [new]
NeedHelpPlease
Guest
iap
NeedHelpPlease,

110 - это не цифра! Это три цифры! Или число.
where ','+str+',' like '%[^0-9]110[^0-9]%'


А без добавления запятых к строке не возможно составить регулярное выражения для проверки числа?
12 янв 13, 16:54    [13759667]     Ответить | Цитировать Сообщить модератору
 Re: Прверить есть ли цифра в строке  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
NeedHelpPlease
iap
NeedHelpPlease,

110 - это не цифра! Это три цифры! Или число.
where ','+str+',' like '%[^0-9]110[^0-9]%'


А без добавления запятых к строке не возможно составить регулярное выражения для проверки числа?
Регулярных выражений в MSSQL пока нет.
А что Вас не устраивает?
12 янв 13, 17:02    [13759677]     Ответить | Цитировать Сообщить модератору
 Re: Прверить есть ли цифра в строке  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
where str like '%[^0-9]110[^0-9]%' or str like '%[^0-9]110[^0-9]' or str like '[^0-9]110[^0-9]%'
12 янв 13, 17:03    [13759678]     Ответить | Цитировать Сообщить модератору
 Re: Прверить есть ли цифра в строке  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
iap
where str like '%[^0-9]110[^0-9]%' or str like '%[^0-9]110[^0-9]' or str like '[^0-9]110[^0-9]%'
Извините, не так, а вот так, конечно:
where str like '%[^0-9]110[^0-9]%' or str like '%[^0-9]110' or str like '110[^0-9]%'
12 янв 13, 17:05    [13759684]     Ответить | Цитировать Сообщить модератору
 Re: Прверить есть ли цифра в строке  [new]
NeedHelpPlease
Guest
Да нет, большое спасибо! это подойдет =)
where ','+str+',' like '%[^0-9]110[^0-9]%'


а такой
iap
where str like '%[^0-9]110[^0-9]%' or str like '%[^0-9]110[^0-9]' or str like '[^0-9]110[^0-9]%'
я писал, но это как то уж совсем громоздко.

Просто слегка логику не уловил, получается, что [^0-9] - это любой символ, кроме с 0 до 9, но этот символ обязательно должен быть
12 янв 13, 17:08    [13759688]     Ответить | Цитировать Сообщить модератору
 Re: Прверить есть ли цифра в строке  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
NeedHelpPlease
Да нет, большое спасибо! это подойдет =)
where ','+str+',' like '%[^0-9]110[^0-9]%'


а такой
iap
where str like '%[^0-9]110[^0-9]%' or str like '%[^0-9]110[^0-9]' or str like '[^0-9]110[^0-9]%'
я писал, но это как то уж совсем громоздко.

Просто слегка логику не уловил, получается, что [^0-9] - это любой символ, кроме с 0 до 9, но этот символ обязательно должен быть
Я же поправился
12 янв 13, 17:18    [13759712]     Ответить | Цитировать Сообщить модератору
 Re: Прверить есть ли цифра в строке  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
iap
NeedHelpPlease
Да нет, большое спасибо! это подойдет =)
where ','+str+',' like '%[^0-9]110[^0-9]%'


а такой
пропущено...
я писал, но это как то уж совсем громоздко.

Просто слегка логику не уловил, получается, что [^0-9] - это любой символ, кроме с 0 до 9, но этот символ обязательно должен быть
Я же поправился
Хотя...
where str = '110' or str like '%[^0-9]110[^0-9]%' or str like '%[^0-9]110' or str like '110[^0-9]%'
12 янв 13, 17:22    [13759720]     Ответить | Цитировать Сообщить модератору
 Re: Прверить есть ли цифра в строке  [new]
Спорц_man
Member

Откуда:
Сообщений: 319
NeedHelpPlease,
а вот так (2 варианта):
1. WHERE str like '%110%'
2, WHERE CHARINDEX('110', str) > 0
12 янв 13, 22:55    [13760845]     Ответить | Цитировать Сообщить модератору
 Re: Прверить есть ли цифра в строке  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31439
Спорц_man
NeedHelpPlease,
а вот так (2 варианта):
1. WHERE str like '%110%'
2, WHERE CHARINDEX('110', str) > 0
Оба неправильные, ему же не надо просто найти подстроку '110' в строке.
12 янв 13, 23:02    [13760878]     Ответить | Цитировать Сообщить модератору
 Re: Прверить есть ли цифра в строке  [new]
nezhadnye_my
Guest
Спорц_man,

declare @t table(id int, s varchar(100));
insert into @t(id, s) 
values
	(1, '110, 1, 108, 144, 146, 117'),
	(2, '2110, 1, 108, 144, 146, 117')

--iap
select * from @t
where ','+s+',' like '%[^0-9]110[^0-9]%'

------------------------------------------------
1	110, 1, 108, 144, 146, 117

--Спорц_man (1)
select * from @t
where s like '%110%'

------------------------------------------------
1	110, 1, 108, 144, 146, 117
2	2110, 1, 108, 144, 146, 117

--Спорц_man (2)
select * from @t
where CHARINDEX('110', s) > 0
------------------------------------------------
1	110, 1, 108, 144, 146, 117
2	2110, 1, 108, 144, 146, 117
 
12 янв 13, 23:09    [13760895]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить