Sav*_*vke 0 oracle11g oracle-sqldeveloper
我正在尝试执行下一个查询:
select * from (case when :p1 = '1' then t1 when :p1=2 then t2);
Run Code Online (Sandbox Code Playgroud)
但这不起作用。我假设 from 子句中不允许使用 when 语句?有没有其他方法可以解决这个问题。谢谢
不,你不能那样做。解析查询时必须修复对象和标识符,因此您无法绑定它们。
您可以使用联合来检查每个分支中的变量:
select * from t1
where :p1 = 1
union all
select * from t2
where :p1 = 2;
Run Code Online (Sandbox Code Playgroud)
假设表的结构是相同的。