在SQL中,日期与“级别”一起使用是什么?

时间:2018-09-04 18:41:34

标签: sql oracle connect-by

我有这个查询,其日期带有'+ level'。我不确定这是什么,但是执行查询会以升序给出日期列表。查询的样子如下:

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

有指导吗?

2 个答案:

答案 0 :(得分:1)

  

CONNECT BY指定层次结构的父行和子行之间的关系。

更多信息在这里-Hierarchical Queries

因此,日期01-JAN-18将在根目录(级别1),然后向前的日期(限于1000个级别)将是子级。

1级是2级的父级,依此类推。

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

有关更多信息,请参考here中的示例。

  

选择employee_id,last_name,manager_id      来自员工      按优先级连接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

请注意,ID为manager的{​​{1}}位于组织的顶部。

答案 1 :(得分:0)

虽然Shreyas是正确的,但对您的示例来说,更简单的答案 是,“ level”就像使用connect by时出现的变量,并且就像“ loop by”连接的计数器”。这将导致查询运行1000次,级别将在循环时保留索引。在此用于计算,它将从1递增到1000。