У меня есть таблица данных, которая является многомерной / нереляционной.Я пытаюсь написать запрос, который динамически записывает все имена столбцов и упорядочивает данные реляционно.
Пример представляет собой простую таблицу с 5 книгами.Столбцы показывают размеры страниц в книге.Набор результатов, который я ищу, будет иметь 3 столбца: BOOK_ID, PAGE, PAGE_SIZE.Я включил простой код для построения таблицы.
Мне удалось обойтись с помощью запроса объединения, но это нецелесообразно для огромного количества столбцов.Набор данных содержит почти 100 столбцов.
CREATE TABLE
BOOK_PAGE_SIZE
(
BOOK_ID VARCHAR2(5)
, SIZE_PAGE_1 NUMBER
, SIZE_PAGE_2 NUMBER
, SIZE_PAGE_3 NUMBER
, SIZE_PAGE_4 NUMBER
, SIZE_PAGE_5 NUMBER
);
INSERT INTO BOOK_PAGE_SIZE VALUES ('T7001',10,35,0,0,0);
INSERT INTO BOOK_PAGE_SIZE VALUES ('T7002',45,84,78,0,0);
INSERT INTO BOOK_PAGE_SIZE VALUES ('T7003',28,65,12,32,0);
INSERT INTO BOOK_PAGE_SIZE VALUES ('T7004',94,74,69,21,76);
INSERT INTO BOOK_PAGE_SIZE VALUES ('T7005',91,23,14,61,46);
РЕЗУЛЬТАТ:
BOOK_ID PAGE_NUMBER PAGE_SIZE
T70001 Page 1 10
T70001 Page 2 35
T70001 Page 3 0
T70001 Page 4 0
T70001 Page 5 0
T70002 Page 1 45
T70002 Page 2 84
T70002 Page 3 78
T70002 Page 4 0
T70002 Page 5 0
T70003 Page 1 28
T70003 Page 2 65
T70003 Page 3 12
T70003 Page 4 32
T70003 Page 5 0
T70004 Page 1 94
T70004 Page 2 74
T70004 Page 3 69
T70004 Page 4 21
T70004 Page 5 76
T70005 Page 1 91
T70005 Page 2 23
T70005 Page 3 14
T70005 Page 4 61
T70005 Page 5 46