Jdbc 选择SUM()抛出";“未找到列”;H2中的异常[42122-193]

Jdbc 选择SUM()抛出";“未找到列”;H2中的异常[42122-193],jdbc,h2,Jdbc,H2,执行以下语句: SELECT SUM(p.price) FROM Product p 通过嵌入式H2数据库上的JDBC引发异常: org.h2.jdbc.JdbcSQLException:未找到“价格”列 [42122-193] 如何使其工作?必须为SUM()中使用的列使用别名: 当心别名必须与列名称完全一致。请发布用于执行的代码和完整的异常stacktrace。@markrotVeel无所谓。问题出在SQL语句中,而不是客户端代码中。此外,完整的stacktrace取决于您的客户机代码,因此

执行以下语句:

SELECT SUM(p.price)
FROM Product p
通过嵌入式H2数据库上的JDBC引发异常:

org.h2.jdbc.JdbcSQLException:未找到“价格”列 [42122-193]


如何使其工作?

必须为SUM()中使用的列使用别名:


当心别名必须与列名称完全一致。

请发布用于执行的代码和完整的异常stacktrace。@markrotVeel无所谓。问题出在SQL语句中,而不是客户端代码中。此外,完整的stacktrace取决于您的客户机代码,因此这并不重要。导入的东西是使用h2.jdbc驱动程序。这里也提到了类似的问题:这对你们来说可能是显而易见的,但对我来说不是。更重要的是要有代码的上下文和异常stacktrace来实际显示错误发生的位置。因为我最初的猜测不是问题不是查询,而是尝试使用
ResultSet.getXxx(“price”)
,这当然不起作用,因为这不是结果集中列的标签。你的回答似乎认为问题完全是通过添加别名解决的,我不愿意从表面上接受它。@markrottveel是的,你是对的!这就是问题所在。我太傻了,不敢仔细看。如果传递给ResultSet方法的列名名命名为“sum(p.price)”,则它将作为excepted无一例外地工作。我会重写这个问题,我会欣然接受你最好的答案。
SELECT SUM(p.price) as price
FROM Product p