尝试组合列时,获取“列名xxx无效”异常

时间:2010-09-03 14:48:58

标签: sql sql-server-2005 jdbc

我试图在SQL查询中组合两列,但在java.sql.ResultSet的FindColumn方法中得到以下异常:

  

JdbcSqlException:列名   FullName无效。柱:   '全名'

这是我的SQL查询

SELECT U.FirstName + ' ' + U.LastName AS FullName FROM User as U

任何?

请注意,当我直接在SQL Server管理工作室中运行查询时,查询运行正常。此外,此查询是大查询的一部分,这就是U作为别名的原因。

4 个答案:

答案 0 :(得分:1)

当您输入“AS FullName”时,Fullname现在是一个标签。 JDBC通过“列名”或“字段名”获取数据。你必须相应地改变你的代码(我不知道你的编程语言)。

答案 1 :(得分:0)

您可以尝试在字符串连接周围添加括号,如

SELECT (U.FirstName + ' ' + U.LastName) AS FullName FROM User U

分享并享受。

答案 2 :(得分:0)

抱歉,我迟到了。我相信有人会需要答案。我遇到了同样的问题,虽然我不确切知道原因和原因,但我找到了解决问题的方法(至少在我的情况下)。

jahanzeb farooq没有显示他的代码,但如果你在当前方法之外声明了PreparedStatementResultSet变量变量并在其他查询中使用它们,那么尝试在当前方法中重新声明它们,是

PreparedStatement pst=conn.prepareStetement(sql);
ResultSet rs=pst.executeQuery();

问题将被排序(或至少是固定的)

答案 3 :(得分:0)

String sql = "SELECT U.FirstName + ' ' + U.LastName AS FullName FROM User U ";

pst = conn.prepareStatement(sql);

rs = pst.executeQuery();

if (rs.next()) {

  String fullname = rs.getString("FullName");

  jtextfiel.setText(fullname);

  //////or - short 

  jtextfiel.setText(rs.getString("FullName"));
}