【问题标题】:Unable to fetch the column name in DB2无法获取 DB2 中的列名
【发布时间】:2021-10-05 04:30:09
【问题描述】:

当我在查询中使用表达式作为列(不带别名)时,驱动程序返回列号,而不是名称

如何获取列名而不是列号?

【问题讨论】:

  • 您希望为sum(a.salary) 列取什么名字?
  • 将查询更改为"SELECT sum(a.SALARY) as SUM_SALARY, a.ID from Q.STAFF a group by a.ID"(换句话说,为包含总和的列命名(别名))
  • @mao, forpas - 所以基本上我不希望最终用户明确地在表达式列旁边包含别名,或者如果他/她忘记包含一个,那么也,我怎样才能获取列表达式本身作为别名,就像在其他数据库(Ex.- MySQL)中一样,它会自动包含在内。
  • 我相信 Db2 不提供该功能,即您需要指定别名,否则列名将是其在结果集中的序号位置。

标签: java sql jdbc db2 db2-luw


【解决方案1】:

如果您想按名称检索列,请使用 AS 为该列命名。

将您的查询更改为:

select sum(a.salary) as total_salary, a.id from q.staff a group by a.id

【讨论】:

  • 所以基本上我不希望最终用户在表达式列旁边明确包含别名,或者如果他/她忘记包含一个,那么我该如何获取列表达式本身作为别名,就像在其他 DB(例如 MySQL)中一样,它会自动包含在内。
  • 恐怕不同的引擎表现不同。 DB2 在这方面与 SQL 和 JDBC 完全兼容。也许您的代码可以干预并命名任何未命名的列。
猜你喜欢
  • 1970-01-01
  • 2011-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多