eclipse使用计数sql查询在Java程序中出现“无效列名”错误
如何在Java程序中使用这个sql查询
String SelectSQL = "SELECT (CASE WHEN cnt >= 1
THEN 'True'
ELSE 'False'
END) result_str
FROM ( SELECT COUNT(*) cnt FROM event WHERE externaleventid ='1256294' )";
我正在使用预备语句传递externaleventid。当我使用列名时,其他查询可以正常工作,但当我不使用列名时,我在SQL developer中运行此查询时会收到错误“无效列名”,它会成功执行
添加了java代码:
String query = " SELECT (CASE WHEN COUNT(*) >= 1 THEN 'True' ELSE 'False' END) AS result_str FROM event WHERE externaleventid = ?";
PreparedStatement pstmt = conn.prepareStatement(query);
pstmt.setString(1,"1256294");
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
String externaleventid = rs.getString("DISPLAYNAME");
System.out.println("externaleventid : " + externaleventid);
}
# 1 楼答案
您试图从名为
DISPLAYNAME
的列中获取结果,该列在您的查询中不存在。一个选项是忽略名称并按索引检索:另一种方法是按名称检索,但使用查询中别名的名称:
# 2 楼答案
你应该写
而不是