Разделить несколько значений в ячейке на несколько строк - Oracle SQL - PullRequest
0 голосов
/ 08 марта 2019

У меня есть таблица:

table1

values
------------
x=new letter
------------
a=old letter
ba=older letter
xq=newer letter
------------
xf=new apple
xt=new orange
x3=new fruit
xtt=new seed

Я должен разделить значения в каждой ячейке на несколько строк.

Следующий вывод:

table2

code      description
x         new letter
a         old letter
ba        older letter
xq        newer letter
xf        new apple
xt        new orange
x3        new fruit
xtt       new seed

Как этого достичь?

Ответы [ 2 ]

2 голосов
/ 08 марта 2019

Я бы использовал regexp_replace() или regexp_substr():

select regexp_substr(str, '^[^=]+') as code,
       regexp_substr(str, '[^=]+$') as value

Здесь - это дБ <> скрипка.

Обратите внимание, что это не использует values для имени столбца.Это очень плохой выбор для имени столбца, потому что это ключевое слово SQL.

2 голосов
/ 08 марта 2019

попробуйте как ниже

SELECT NVL(SUBSTR('a=old letter', 0, INSTR('a=old letter', '=')-1), 'a=old letter') 
AS col1, NVL(SUBSTR('a=old letter', INSTR('a=old letter', '=')+1), 'a=old letter')    
  FROM DUAL

так в вашем случае

SELECT NVL(SUBSTR(values, 0, INSTR(values, '=')-1), values) 
AS col1, NVL(SUBSTR(values, INSTR(values, '=')+1), values) 

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