найти и добавить в столбец с помощью регулярного выражения - PullRequest
0 голосов
/ 29 марта 2019

У меня одна таблица с именем test.Мне нужно найти любой алфавит и добавить с ALL в столбце имени с помощью регулярного выражения.Пожалуйста, введите ваши данные.

Примечания: в будущем значения также будут вставлены в этот столбец.Таким образом, во время выполнения он должен заменить.

create table test(id number, name varchar2(10));
insert INTO TEST VALUES (1,'_A');
insert INTO TEST VALUES (2,'_F');
insert INTO TEST VALUES (3,'_K');
insert INTO TEST VALUES (4,'_B || _G');

Мой вывод должен быть как ниже

-------------------------------
  id    column
--------------------------------
    1   _AALL
    2   _FALL
    3   _KALL
    4   _BALL || _GALL

Ответы [ 2 ]

0 голосов
/ 29 марта 2019
with test as(
  select 1 as id , '_A' as l from dual union all
  select 1 as id , '_B || _G' as l from dual 
)
select t.*,
regexp_replace(t.l,'([A-Z])','\1'||'ALL') rps
from test t;

        ID L                    RPS                 
---------- -------------------- --------------------
         1 _A                   _AALL               
         1 _B || _G             _BALL || _GALL      
0 голосов
/ 29 марта 2019

вы можете использовать regexp_replace

with test as(
  select 1 as id , '_A' as l from dual union all
  select 1 as id , '_B || _G' as l from dual 
)

select t.*
      , trim(regexp_replace(t.l,'(_[A-Z])( |$)','\1'||'ALL '))
  from test t
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...