Oracle自动重命名列中的列?

bwa*_*wok 4 sql oracle alias column-alias

我有2个表,包含以下字段.

表格1

  • AA
  • BB
  • CC
  • DD

表2

  • AA
  • CC
  • EE

询问

Select t1.*, 
       t2.*
  from table1 t1,
  join table2 t2 on table1.DD = table2.EE
Run Code Online (Sandbox Code Playgroud)

我的数据列返回以下列名称:

AA, BB, CC, DD, **AA_1**, **CC_1**, EE
Run Code Online (Sandbox Code Playgroud)

我不希望列名这样.我希望他们将表名称作为common(或所有列)的名称前缀.我可以解决这个问题:

select t1.AA as t1_AA, t1.BB as t1_BB, t1.CC as t1_CC, t1.DD as t1_DD, 
 t2.AA as t2_AA, t2.CC as t2_CC, t2.EE as t2_EEE
   from table1 t1,
    inner join table2 t2
    on table1.DD = table2.EE
Run Code Online (Sandbox Code Playgroud)

但这意味着每个地方的每个选择都会变得长500行.在oracle中有没有神奇的方法呢?基本上我想写我的代码

 select t1.* as t1_*, t2.* as t2_*
       from table1 t1,
        inner join table2 t2
        on table1.DD = table2.EE
Run Code Online (Sandbox Code Playgroud)

但当然这不是有效的SQL

OMG*_*ies 5

在oracle中有没有神奇的方法呢?

不是我知道的.您的选择相当于:

  1. 解决列命名方案 - 您需要使用ALTER TABLE语句,如:

    ALTER TABLE table_name
         RENAME COLUMN old_name to new_name;
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用列别名

您可以使用视图来节省定义列别名的工作量和工作量,但这不是推荐的做法,因为在将视图层叠在一起时性能较差.


vls*_*vls 5

在Oracle SELECT语法中,目前无法根据某些表达式将列别名分配给多个列.您必须为每个单独的列分配别名.