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

Откуда:
Сообщений: 20
Добрый день, помогите, пож. Есть табл с данными в поле есть такие данные, например: 001, 0005, 4в, 00007 и т.д. Смысл в том, что из этих данных необходимо выбрать данные, включающие 0 и кол-во нулей в поле должно быть от 2 шт до 3 шт включительно.
17 фев 17, 15:02    [20221578]     Ответить | Цитировать Сообщить модератору
 Re: нахождение данных при ограниченном кол-ве  [new]
AmKad
Member

Откуда:
Сообщений: 4491
stanna,

Like. Если нули могут быть неспаренными, то length + replace.
17 фев 17, 15:12    [20221632]     Ответить | Цитировать Сообщить модератору
 Re: нахождение данных при ограниченном кол-ве  [new]
stanna
Member

Откуда:
Сообщений: 20
AmKad,Вы можете пример привести?
Я делала так
select * from stanna
where REGEXP_LIKE (amt,'0{2,3}'), но данные отображаются и те, где кол-во 0 = 4
17 фев 17, 15:17    [20221666]     Ответить | Цитировать Сообщить модератору
 Re: нахождение данных при ограниченном кол-ве  [new]
123йй
Member

Откуда:
Сообщений: 1244
stanna
где кол-во 0 = 4

это два + два нуля. добавьте условие что следующий символ не 0
17 фев 17, 15:21    [20221689]     Ответить | Цитировать Сообщить модератору
 Re: нахождение данных при ограниченном кол-ве  [new]
AmKad
Member

Откуда:
Сообщений: 4491
with s as (select column_value as str from table(sys.odcivarchar2list('001', '0005', '4в', '00007')))
select *
from s
where str like '%00%' and str not like '%0000%';
17 фев 17, 15:23    [20221708]     Ответить | Цитировать Сообщить модератору
 Re: нахождение данных при ограниченном кол-ве  [new]
stanna
Member

Откуда:
Сообщений: 20
AmKad, спс Вам огромное. Все получилось. У меня еще вопрос, подскажите почему не сработал {2,3}?
17 фев 17, 15:36    [20221801]     Ответить | Цитировать Сообщить модератору
 Re: нахождение данных при ограниченном кол-ве  [new]
AmKad
Member

Откуда:
Сообщений: 4491
stanna
У меня еще вопрос, подскажите почему не сработал {2,3}?
Ну почему же не сработал. Он сработал, только не так, как Вы от него ожидали. Этот паттерн ищет строки, в которых есть 2 или 3 рядом стоящих нуля. И неважно, сколько их по факту в строке, хоть 100500, если он нашел пару - то строка попадает под условие.
17 фев 17, 15:42    [20221829]     Ответить | Цитировать Сообщить модератору
 Re: нахождение данных при ограниченном кол-ве  [new]
stanna
Member

Откуда:
Сообщений: 20
еще раз спс Вам, все доступно объяснили
17 фев 17, 15:45    [20221853]     Ответить | Цитировать Сообщить модератору
 Re: нахождение данных при ограниченном кол-ве  [new]
tst
Guest
stanna,

with t as
(select '0012300' amt from dual union all
select '012300' amt from dual union all
select '0012300' amt from dual union all
select '00123' amt from dual union all
select '00123000' amt from dual )

select *
from t
where REGEXP_count(amt, '0') between 2 and 3
17 фев 17, 16:00    [20221930]     Ответить | Цитировать Сообщить модератору
 Re: нахождение данных при ограниченном кол-ве  [new]
stanna
Member

Откуда:
Сообщений: 20
tst,спс большое
17 фев 17, 16:09    [20221957]     Ответить | Цитировать Сообщить модератору
 Re: нахождение данных при ограниченном кол-ве  [new]
123йй
Member

Откуда:
Сообщений: 1244
tst,

01230
17 фев 17, 16:09    [20221960]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить