3
我想从下面的查询得到的列名,PostgreSQL- getColumnName不工作,返回别名
SELECT
category as c1,
forecast_2016,
category,
rowcount,
item_number,
rowcount,
category,
avg_demand_2014_2015,
category,
avg_spend_2014_2015,
avg_demand_2014_2015,
avg_spend_2014_2015,
demand_2015
FROM
ag_instrument_portfolio_master LIMIT 1
Postgres的版本是9.3和Java 1.7版本,Java实现如下。
stmt = con.createStatement();
rs = stmt.executeQuery(query.toString());
ResultSetMetaData columnsMetadata = rs.getMetaData();
int i = 0;
while (i < columnsMetadata.getColumnCount()) {
i++;
System.out.println("Name: " + columnsMetadata.getColumnName(i));
System.out.println("Label: " + columnsMetadata.getColumnLabel(i));
}
输出是
Name: c1
Label: c1
但是,预期是
Name: category
Label: c1
将'SELECT category as c1'更改为'SELECT category' – Nicarus
这是正确的列名称。它在你的SQL中被定义为。就Java而言,这是列名。在这种情况下,您需要更改查询以返回类别而不是c1。 – ManoDestra
@Nicarus,我有目的地给了别名以减少json的大小,我的记录将在百万 –