【发布时间】:2011-01-30 20:33:15
【问题描述】:
可以在选择中为所有列加上前缀的别名吗? 我在需要连接在一起的 Oracle 数据库中有一组表,其中大多数具有相同的列名。我想要类似的东西
select MAGIC_ADD_PREFIX("PREFIX", *) from TABLE
并得到类似的结果
+---------+----------+----------+
|PREFIX_ID|PREFIX_FOO|PREFIX_BAR|
+---------+----------+----------+
|... | | |
我唯一能想到的就是像 chumsky 这样的东西
select ID PREFIX_ID, FOO PREFIX_FOO, BAR PREFIX_BAR from TABLE
但它丑得要命,而且容易出错
==== 进一步解释====
问题
select TABLE.*,...
是我使用 java + jdbc 驱动程序来检索列,而java.sql.ResultSet 方法(resultset.getInt("COLUMNNAME")、.getString("COLUMNNAME")...)不支持语法“TABLENAME.COLUMNAME”。
如果我这样做(简化,没有错误检查...)
ResultSet rs = mkResultSet("select * from table_a, table_b");
rs.next();
System.out.println(rs.getInt("table_a.id"));
我收到一个SQLException,其中列名无效
【问题讨论】: