Oracle PL / SQL Query, Добавление нового столбца с помощью цикла - PullRequest
0 голосов
/ 11 октября 2019

У меня есть таблица в Excel, которая называется тестовой таблицей:

enter image description here

Мне нужно создать дополнительный столбец с именем level в таблице черезследующие шаги.

  1. Когда столбец «родитель» равен «EEP», проверьте значения в столбце местоположения. В этой таблице столбец местоположения имеет только A под фильтром EEP для родительского столбца. Теперь присвойте значение 1 в столбце уровня

  2. Теперь проверьте значение A под родительским столбцом. Значения под местоположением являются B, N, S. Назначьте 2 под столбцом уровня

  3. Теперь проверьте B, N, S под родительским столбцом. Значения под местоположением являются C, D, Q, U, V. Назначьте 3 под столбцом уровня

  4. Теперь проверьте C, D, Q, U, V под родительским столбцом. значения, соответствующие местоположению: R, M. Назначьте 4 под столбцом уровня.

Моя финальная таблица должна выглядеть примерно так:

enter image description here

Мне нужно написать запрос в Oracle SQL, чтобы сделать то же самое для всех строк в родительском столбце, добавив по одному в столбце уровня после каждой итерации. Эти данные являются только тестовыми данными, исходные данные имеют более 2,6 миллиона строк.

1 Ответ

0 голосов
/ 11 октября 2019

Вам нужно простое соединение по предложению -

CREATE TABLE NEW_TABLE AS
SELECT C.LOCATION, C.PARENT, LEVEL
FROM CTE C
START WITH PARENT = 'EEP'
CONNECT BY PRIOR LOCATION = PARENT;

Здесь - это скрипка

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