【发布时间】:2017-04-25 12:12:33
【问题描述】:
我需要在一个 Oracle PL/SQL 选择中根据某些变量在原始选择和分层选择语句之间切换。但是,不能在 select 中使用 If 语句。 比如我有分层语句
select a.*
from myTable a
start with a.id = varValue
connect by prior a.id = a.parentId
如果某个 varCondition 为 0。
如果 varCondition = 1 那么 select 应该给出与语句结果相同的结果
select a.* from myTable a where a.id = varValue
类似select a.* from myTable a start with a.id = varValue connect by prior a.id = decode(varCondition, ...)
有可能吗?
【问题讨论】:
-
您的问题中没有 PL/SQL。只有普通的 SQL。但我认为这对于普通的 SQL 是不可能的。只要
connect by是语句的一部分,它将是一个递归语句。但使用 PL/SQL 和使用动态 SQL 的函数可能确实有可能 -
谢谢。问题是我需要使用 sql 作为 Apex Interactive Report 的来源,并认为我可以通过使用修改后的 sql 语句来解决这个问题。
标签: sql oracle connect-by