как разбить строку с несколькими специальными символами в oracle - PullRequest
0 голосов
/ 23 марта 2020

У меня есть строка с 2 специальными символами, как показано ниже

String :'PAN~HLASD4564P|VOTER_ID~VDD3455355'

Я хочу выводить в 2 столбца, как показано ниже:

ID_TYPE       VALUE
-------       ------
PAN           HLASD4564P
VOTER_ID      VDD3455355

введите описание изображения здесь

1 Ответ

2 голосов
/ 23 марта 2020

Вы можете использовать CONNECT BY и REGEXP_SUBSTR следующим образом:

SQL> WITH YOUR_DATA AS (
  2      SELECT 'PAN~HLASD4564P|VOTER_ID~VDD3455355' AS STR
  3      FROM DUAL
  4  ) -- Your query starts from here
  5  SELECT 
  6      REGEXP_SUBSTR(NEW_STR, '[^~]+', 1, 1) AS ID,
  7      REGEXP_SUBSTR(NEW_STR, '[^~]+', 1, 2) AS VALUE
  8  FROM
  9      (
 10          SELECT REGEXP_SUBSTR(STR, '[^|]+', 1, LEVEL) NEW_STR
 11          FROM YOUR_DATA
 12          CONNECT BY LEVEL <= 2
 13      );

ID         VALUE
---------- -------------
PAN        HLASD4564P
VOTER_ID   VDD3455355

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