Что такое «уровень», используемый с датой в SQL? - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть этот запрос, который имеет + уровень с датой. Я не уверен, что это такое, но выполнение запроса дает список дат в порядке возрастания. Вот как выглядит запрос:

select date '2018-01-01' + level -1 dt
from dual connect by level <= 1000

Любое руководство?

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

В то время как Shreyas верен, более простой ответ для вашего примера состоит в том, что «уровень» похож на переменную, которая появляется, когда вы используете connect by, и похож на счетчик для соединения «loop» , Это приведет к тому, что запрос будет выполнен 1000 раз, а уровень будет содержать индекс в цикле. Здесь он используется в расчете и будет увеличиваться с 1 до 1000.

0 голосов
/ 04 сентября 2018

CONNECT BY указывает отношение между родительскими строками и дочерними строками иерархии.

Подробнее здесь - Иерархические запросы

Таким образом, дата 01-JAN-18 будет в корне (уровень 1), и тогда последующими датами (ограничено 1000 уровнями) будут дети.

Уровень 1 будет родителем для Уровня 2 и т. Д.

select date '2018-01-01' + level -1 dt, LEVEL
from dual connect by level <= 1000

Подробнее см. В этом примере из здесь .

ВЫБРАТЬ идентификатор сотрудника, фамилия, идентификатор менеджера ОТ сотрудников ПОДКЛЮЧИТЕ ПО ДАННЫМ employee_id = manager_id;

EMPLOYEE_ID LAST_NAME                 MANAGER_ID
    101     Kochhar                          100
    108     Greenberg                        101
    109     Faviet                           108
    110     Chen                             108
    111     Sciarra                          108
    112     Urman                            108
    113     Popp                             108
    200     Whalen                           101

Обратите внимание, что manager с идентификатором 100 находится на вершине организации.

...