Показать данные таблицы по одному - PullRequest
1 голос
/ 30 марта 2019

Нужно знать вывод в Oracle sql

Country              Code
USA                  23, 24, 25, 30
Canada               40, 50, 70

Вывод будет отображаться так

Country            Code
USA                 23
USA                 24
USA                 25
USA                 30
Canada              40
Canada              50
Canada              70

1 Ответ

1 голос
/ 30 марта 2019

Вы можете попытаться использовать connect by с instr получить , номер группы для уровня, затем используйте regexp_substr, чтобы получить строку.

Настройка схемы Oracle 11g R2 :

CREATE TABLE T(
   Country varchar(50),
   Code varchar(50)
);


INSERT INTO T VALUES ('USA','23, 24, 25, 30');
INSERT INTO T VALUES ('Canada','40, 50, 70');

Запрос 1 :

select distinct Country,trim(regexp_substr(Code, '[^,]+', 1, level)) Code
FROM T
connect by instr(Code, ',', 1, level - 1)  > 0
ORDER BY Country desc

Результаты :

| COUNTRY | CODE |
|---------|------|
|     USA |   23 |
|     USA |   24 |
|     USA |   25 |
|     USA |   30 |
|  Canada |   40 |
|  Canada |   50 |
|  Canada |   70 |
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...