powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / специфическая фильтрация
8 сообщений из 8, страница 1 из 1
специфическая фильтрация
    #40044493
verter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как бы так получить имена из таблицы, в которых встречается 'abc', но ни слева ни справа к нему не примыкают буквы и цифры?

select * from tabl t where t.name like '%abc%'

нам даст следующее:

QWabcDF
Q1abc DFF
Q1abc45
abc
Q abc 123
Q (abc)ddfd
abc
abc.

нам нужно из всего этого только следующее:

abc
Q abc 123
Q (abc)ddfd
abc
abc.
...
Рейтинг: 0 / 0
специфическая фильтрация
    #40044496
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
verter,
Код: plsql
1.
2.
3.
4.
select *
from   (select 'Q1abc45' a from   dual
        union  select 'Q abc 123' from   dual) t
where  regexp_like(t.a, '[^0-9]abc[^0-9]')
...
Рейтинг: 0 / 0
специфическая фильтрация
    #40044614
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
123йй
Код: plsql
1.
'[^0-9]abc[^0-9]'

Код: plsql
1.
'abc', 'XYZabc', 'abcQWERTY'
...
Рейтинг: 0 / 0
специфическая фильтрация
    #40044726
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
verter,

Код: plsql
1.
'(^|\W|_)abc($|\W|_)'
...
Рейтинг: 0 / 0
специфическая фильтрация
    #40044847
verter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
123йй
verter,
Код: plsql
1.
2.
3.
4.
select *
from   (select 'Q1abc45' a from   dual
        union  select 'Q abc 123' from   dual) t
where  regexp_like(t.a, '[^0-9]abc[^0-9]')



спасибо. с цифрами убирает, но вот с буквами нет.

и вот так не прокатывает:
Код: plsql
1.
2.
3.
4.
5.
6.
select *
from   (select 'Q1abc45' a from   dual
        union  select 'Q abc 123' from   dual
        union  select 'QXabcBV' from   dual) t
where  regexp_like(t.a, '[^0-9]abc[^0-9]') and
           regexp_like(t.a, '[^A-Z]abc[^A-Z]')
...
Рейтинг: 0 / 0
специфическая фильтрация
    #40044856
verter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AmKad
verter,

Код: plsql
1.
'(^|\W|_)abc($|\W|_)'



да, супер. только один случай не работает когда:
Код: plsql
1.
2.
select *
from   (select 'Q1 abc' a from dual) t



тут должен выбирать, не отфильтровывать.
...
Рейтинг: 0 / 0
специфическая фильтрация
    #40044870
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
verter
тут должен выбирать, не отфильтровывать.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
with s as (select * from table(sys.odcivarchar2list(
'Q1 abc',
'Q1 abc ',
'QWabcDF',
'Q1abc DFF',
'Q1abc45',
'abc',
'Q abc 123',
'Q (abc)ddfd',
'abc',
'_abc_',
' abc ',
'_abc',
'abc_',
'abc.',
'abc',
'Q abc 123',
'Q (abc)ddfd',
'abc',
'abc.'
)))
select s.*, case when regexp_like(column_value, '(^|\W|_)abc($|\W|_)') then '+' else '-' end is_matched
from s;

COLUMN_VALUE    IS_MATCHED
--------------- ----------
Q1 abc          +
Q1 abc          +
QWabcDF         -
Q1abc DFF       -
Q1abc45         -
abc             +
Q abc 123       +
Q (abc)ddfd     +
abc             +
_abc_           +
 abc            +
_abc            +
abc_            +
abc.            +
abc             +
Q abc 123       +
Q (abc)ddfd     +
abc             +
abc.            +

19 rows selected

SQL> 
...
Рейтинг: 0 / 0
специфическая фильтрация
    #40044908
verter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AmKad,

извиняюсь, я просто вот так делал:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
select *
from   (select 'Q1 abc' a from dual) t
where 
    regexp_like(t.a,'[^0-9]abc[^0-9]') and regexp_like(t.a,'(^|\W|_)abc($|\W|_)') 

если делать так:

select *
from   (select 'Q1 abc' a from dual) t
where 
     regexp_like(t.a,'(^|\W|_)abc($|\W|_)') 



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


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