sql - Oracle 自动重命名 select 中的列?

标签 sql oracle alias column-alias

我有 2 个带有以下字段的表。

表1

  • AA
  • BB
  • 抄送
  • DD

表2

  • AA
  • 抄送
  • EE

查询

Select t1.*, 
       t2.*
  from table1 t1,
  join table2 t2 on table1.DD = table2.EE

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

AA, BB, CC, DD, **AA_1**, **CC_1**, EE

我不想要这样的列名称。我希望它们的表名称以公共(public)名称(或所有列)为前缀。我可以用以下方法解决这个问题:

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

但这意味着每个地方的选择都会变长 500 行。 oracle 有什么神奇的方法可以做到这一点吗?基本上我想编写我的代码,例如

 select t1.* as t1_*, t2.* as t2_*
       from table1 t1,
        inner join table2 t2
        on table1.DD = table2.EE

但这当然不是有效的 SQL

最佳答案

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

关于sql - Oracle 自动重命名 select 中的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3833038/

相关文章:

sql - Int 数组和 IN 语句

sql - 如何创建SQL Server函数以返回int?

oracle - oracle中记录行号

linux - 别名中的引用变量

sql - 我可以为多个列添加别名吗?如何?

dart - 在已发布的 Flutter/Dart 包中重构参数名称时如何保持向后兼容性?

sql - Hive中通过复杂键计算两个表之间的表差异

sql - ORDER BY 子句中的列无效,因为它未包含在聚合函数或 GROUP BY 子句中

oracle - PL/SQL 输入验证技术/实用程序

database - 导入查询时 TOAD Oracle 内存不足 : 7C86