Помогите мне разобраться в запросе CTE, используя двойную таблицу и соединиться по уровню - PullRequest
1 голос
/ 15 марта 2011

Попытка интерпретировать этот запрос ...

SELECT blah1, blah2, ... FROM (SELECT level-1 HOUR_ID 
          FROM dual 
          CONNECT BY level <= 24
         ) LU_HOUR

что содержат бла-значения? что означает уровень для двойной таблицы?

1 Ответ

5 голосов
/ 15 марта 2011

dual является фиктивной таблицей с одним столбцом (с именем dummy) и одной строкой (содержащей X для фиктивного столбца).

CONNECT BY level <= 24 - это иерархический термин запроса, который означает, что для каждого совпадения на каком-либо уровне вы подключаете каждое возможное совпадение на следующем уровне при условии, что ваше условие истинно. Здесь LEVEL автоматически увеличивается, и вы можете обратиться к родительскому совпадению с помощью PRIOR.

Это хитрость для подделки результата запроса с 24 строками, от 0 до 23.

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