根据输入条件选择一个表

时间:2015-04-10 09:49:56

标签: sql oracle oracle10g

我正在使用oracle 10g,我需要编写一个查询,在表中要考虑生成输出是基于用户输入。

我已按以下方式撰写,但收到错误。

UNDEFINE CDR
SELECT F.EMPLOYEE_ID FROM
( SELECT DECODE(&&CDR,25,'TABLE 1' ,22,'TABLE 2' ,19,'TABLE 3' ,16,'TABLE 4') FROM DUAL ) F
WHERE F.FLAG='G';

1 个答案:

答案 0 :(得分:0)

没有动态SQL的最接近的是:

select EMPLOYEE_ID
from table1
where flag = 'G' and &&CDR = 25
union all
select EMPLOYEE_ID
from table2
where flag = 'G' and &&CDR = 19
union all
select EMPLOYEE_ID
from table4
where flag = 'G' and &&CDR = 16
union all
select EMPLOYEE_ID
from table1
where flag = 'G' and &&CDR not in (25, 19, 16)