我有2个包含以下字段的表格。
查询
Select t1.*,
t2.*
from table1 t1,
join table2 t2 on table1.DD = table2.EE
我的数据列返回以下列名称:
AA, BB, CC, DD, **AA_1**, **CC_1**, EE
我不希望列名这样。我希望他们将表名称作为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
但这意味着每个地方的每个选择都会变得长500行。在oracle中有没有神奇的方法呢?基本上我想编写像
这样的代码 select t1.* as t1_*, t2.* as t2_*
from table1 t1,
inner join table2 t2
on table1.DD = table2.EE
但当然这不是有效的SQL
答案 0 :(得分:5)
在oracle中有没有神奇的方法呢?
不是我知道的。您的选择相当于:
解决列命名方案 - 您需要使用ALTER TABLE语句,如:
ALTER TABLE table_name
RENAME COLUMN old_name to new_name;
使用列别名
您可以使用视图来节省工作量和工作量。定义列别名的努力,但这不是推荐的做法,因为在将视图叠加在一起时性能不佳。
答案 1 :(得分:5)
在Oracle SELECT
语法中,目前无法根据某些表达式将列别名分配给多个列。您必须为每个列分配别名。
答案 2 :(得分:0)
创建视图是一种选择吗?
您正在使用的软件是什么?我没有在10 *中的SQL * Plus或PL / SQL Developer中看到这种行为。 PL / SQL不允许你在其中构建一个带有这种歧义的游标。
答案 3 :(得分:0)
试试这个
select t1.AA "t1_AA", t2.AA "t2.AA"
from table1 t1,
inner join table2 t2
on table1.DD = table2.EE
正如他之前所说的那样,你需要按照列进行操作