帮助我使用双表理解CTE查询并按级别连接

时间:2011-03-15 16:00:48

标签: sql oracle oracle10g

尝试解释此查询...

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

blah值包含什么?对于双表来说,级别意味着什么?

1 个答案:

答案 0 :(得分:5)

dual是一个虚表,有一列(名为dummy)和一行(虚拟列包含X)。

CONNECT BY level <= 24是一个分层查询术语,这意味着对于某个级别的每个匹配,如果您的条件为真,则在下一级别连接每个可能的匹配。在这里,LEVEL会自动递增,您可以使用PRIOR引用父匹配。

这是一个用24行伪造查询结果的技巧,从0到23。