任何人都可以向我解释一下oracle数据库中的分层查询。特别是关于术语
此外,为什么在与普通查询进行比较时使用它。我也给出了一个示例查询,在此查询的帮助下解释我,因为它对所有人都有用。
SELECT SID
FROM student
CONNECT BY NOCYCLE PARENT_sid = PRIOR SID
START WITH sid = prior NULLIF(parent_sid,sid)
答案 0 :(得分:1)
来自Hierarchical Queries的文档:
START WITH 指定层次结构的根行。
CONNECT BY 指定层次结构的父行和子行之间的关系。
NOCYCLE 参数指示Oracle数据库从查询中返回行,即使数据中存在CONNECT BY循环也是如此。
PRIOR 运算符 - 在分层查询中,必须使用PRIOR运算符限定条件中的一个表达式以引用父行。
来自NULLIF上的Oracle文档:
NULLIF比较expr1和expr2。如果它们相等,那么功能 返回null。如果它们不相等,则函数返回expr1。 您不能为expr1指定文字NULL。
如果两个参数都是数值数据类型,那么Oracle数据库 隐式地确定具有更高数字优先级的参数 将另一个参数转换为该数据类型,并返回该参数 数据类型。如果参数不是数字,那么它们必须是 相同的数据类型,或Oracle返回错误。
NULLIF函数在逻辑上等效于以下CASE表达式:
CASE WHEN expr1 = expr 2 THEN NULL ELSE expr1 END