Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / шаблон для regexp_like / 12 сообщений из 12, страница 1 из 1
09.11.2018, 13:39
    #39730544
шаблон для regexp_like
Добрый день, прошу помощь по шаблону для regexp_like

нужно отбирать записи где в строке встречается '10' в 9 и 10 позиции, до нее может быть 8 любых символов, дальше тоже могут быть любые символы


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
with sel as
 (select 'BY30MTBK20dddd' as val from dual 
   union all
  select 'BY30MTBK30dddd' as val from dual 
   union all
  select 'BY30MTBK10dddd' as val from dual
   union all
  select 'BY30MTBK1010' as val
    from dual)
  
select *
  from sel
 where regexp_like(val, '(.{8})10(.*)')



пробую вот такой шаблон, но он выбирает 2 последние строки, а хотелось бы, чтобы была отобрана только BY30MTBK10dddd
...
Рейтинг: 0 / 0
09.11.2018, 13:51
    #39730551
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
шаблон для regexp_like
Виктор Чирковно он выбираетПотому что не заякорился за начало строки.
...
Рейтинг: 0 / 0
09.11.2018, 13:53
    #39730553
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
шаблон для regexp_like
Виктор Чирковно он выбирает 2 последние строки, а хотелось бы, чтобы была отобрана толькоС какой это стати?
...
Рейтинг: 0 / 0
09.11.2018, 13:53
    #39730554
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
шаблон для regexp_like
Виктор Чирков,

Последняя строка соответствует
Виктор Чирковдальше тоже могут быть любые символы

Вашей постановке отвечает и более простое решение
Код: plsql
1.
 where substr(val,9,2)='10'
...
Рейтинг: 0 / 0
09.11.2018, 13:55
    #39730557
ma1tus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
шаблон для regexp_like
Виктор Чирков,

Код: plsql
1.
NOT SUBSTR(val, 11) LIKE '10%'

?
...
Рейтинг: 0 / 0
09.11.2018, 13:56
    #39730560
ma1tus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
шаблон для regexp_like
ma1tus,

ой)
...
Рейтинг: 0 / 0
09.11.2018, 14:03
    #39730563
шаблон для regexp_like
авторВашей постановке отвечает и более простое решение

нужно именно с regexp_like, по ряду причин
...
Рейтинг: 0 / 0
09.11.2018, 14:11
    #39730570
шаблон для regexp_like
авторПотому что не заякорился за начало строки.

попробовал вот такой вариант
Код: sql
1.
regexp_like(val, '^.{8}10(.*)')



но результат все равно выдает 2 строки
...
Рейтинг: 0 / 0
09.11.2018, 14:17
    #39730573
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
шаблон для regexp_like
Виктор Чирковно результат все равно выдает 2 строкиПотому что вредно отключать мозги.
...
Рейтинг: 0 / 0
09.11.2018, 14:39
    #39730599
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
шаблон для regexp_like
Виктор Чирковнужно отбирать записи где в строке встречается '10' в 9 и 10 позиции, до нее может быть 8 любых символов, дальше тоже могут быть любые символы


пробую вот такой шаблон, но он выбирает 2 последние строки, а хотелось бы, чтобы была отобрана только BY30MTBK10dddd

Выражаться надо яснее. Цифра тоже символ. Похоже под "любые символы" ты имеешь ввиду "не цифрa", а может буквы, а может x.з. И только один символ непосредственно после 10 или после 10 идо конца? Поясни. Если "не цифрa" непосредственно после 10, то:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
with sel as
 (select 'BY30MTBK20dddd' as val from dual 
   union all
  select 'BY30MTBK30dddd' as val from dual 
   union all
  select 'BY30MTBK10dddd' as val from dual
   union all
  select 'BY30MTBK1010' as val
    from dual)
select *
  from sel
 where regexp_like(val, '^.{8}10\D')
/

VAL
--------------
BY30MTBK10dddd

SQL> 



SY.
...
Рейтинг: 0 / 0
09.11.2018, 14:47
    #39730610
Да ну
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
шаблон для regexp_like
Виктор Чирковпопробовал вот такой вариант
Код: sql
1.
regexp_like(val, '^.{8}10(.*)')


но результат все равно выдает 2 строки
Это хотел?
Код: plsql
1.
regexp_like(val, '^.{8}10[^0-9]*$')
...
Рейтинг: 0 / 0
09.11.2018, 15:49
    #39730706
шаблон для regexp_like
SYВыражаться надо яснее. Цифра тоже символ. Похоже под "любые символы" ты имеешь ввиду "не цифрa", а может буквы, а может x.з. И только один символ непосредственно после 10 или после 10 идо конца? Поясни. Если "не цифрa" непосредственно после 10, то:

после 10 может быть любой символ
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / шаблон для regexp_like / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]