是否可以使用来自2列的连接值作为from子句中的表名

时间:2012-11-16 16:56:23

标签: oracle select oracle10g sqlplus

我想连接2个选定列的值,并将结果用作另一个select语句的表名:

select a.ColumnA,
       a.ColumnB, 
       b.ColumnG, 
       (a.ColumnA || '.' || a.ColumnB) "TABLENAME"
       (select t.ColumnX from TABLENAME t where t.ColumnY = 'whatever') "GOAL"
from
       table a,
       table b,
where
       ....

所以假设

table a:
ColumnA ColumnB ColumnC ...
    dev    town      15

table b:
ColumnF ColumnG ColumnH ...
    aaa    bbb      ccc

在某处,架构dev中存在可以使用名称dev.town查询的表镇:

table dev.town:
ColumnX   ColumnY ColumnZ ...
    Joe  whatever      Mr

所以“我的查询”返回

ColumnA ColumnB ColumnG TABLENAME GOAL
--------------------------------------
    dev    town     bbb  dev.town  Joe

有没有办法得到我需要的结果?

感谢。

1 个答案:

答案 0 :(得分:0)

不在Oracle的SQL语句中。 如果您潜入PL / SQL,那么您可以使用EXECUTE IMMEDIATE语句动态生成所需的表。