Regex в запросе SQL - УДАЛИТЬ ПОСЛЕ - PullRequest
0 голосов
/ 02 октября 2019

GOAL

Я хочу удалить с помощью regex в SQL-запросе все после двоеточия, может кто-нибудь помочь мне смонтировать этот запрос? Я сделал несколько попыток, но безуспешно ...

Обычный запрос

enter image description here

Удалить с помощьюРегулярное выражение

enter image description here

желаемый результат

SRV
SRV
SRV
SRV2
SRV2
SRV2
...

попытка

select regexp_replace(
hostname,'([^,]+), (\1(, |$))+', '\1\3')
from hosts;

1 Ответ

2 голосов
/ 02 октября 2019

Возможно, вам будет проще использовать REGEXP_EXTRACT

https://www.ibm.com/support/knowledgecenter/SSEPGG_11.5.0/com.ibm.db2.luw.sql.ref.doc/doc/r0061492.html

например

WITH hosts(hostname) AS ( 
    VALUES ('SRV:MD1'),('SRV:MD2'),('SRV2:GW2') 
)
SELECT
    REGEXP_EXTRACT(hostname,'(.+):',1,1,'',1)
FROM
    hosts

, который вернет

 1
 ----
 SRV
 SRV
 SRV2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...