【发布时间】:2014-08-02 17:34:55
【问题描述】:
根据输入的 'include_child' 我可以选择 where 条件吗?
实际查询:
SELECT *
FROM table1 t
WHERE t.node_id IN (SELECT decode(:include_Child , 1 ,child_node_id, 0 , 123)
FROM table2
WHERE node_id IN 123 )
寻找类似的东西:
IF include_Child = 0 then
SELECT *
FROM table1 t
WHERE t.node_id IN 123 -- do no use table2 at all
-- only when condition met then use table2
IF include_Child = 1 then
SELECT *
FROM table1 t
WHERE t.node_id IN (select child_node from table2)
我希望在 SELECT 查询中使用它。而不是在 PL/SQL 块中。 DB版本为11g
有什么建议吗?
提前致谢!
【问题讨论】:
标签: sql performance oracle select