我在java程序中使用嵌入式hsql数据库。 我想写一个像这样的hsql语句:
statement.executeQuery("SELECT sum(Points) FROM Table");
起初我试过这个:
String column = "Points";
statement.executeQuery("SELECT sum(\""+column+"\") FROM \""+table+"\"");
java.sql.SQLException: Column not found: Points
下一个:
statement.executeQuery("SELECT sum(POINTS) FROM \""+table+"\"");
java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: POINTS
接下来尝试,永远不应该只为你而工作: - )
statement.executeQuery("SELECT sum(\'"+column+"\') FROM \""+table+"\"");
java.sql.SQLSyntaxErrorException: incompatible data type in operation
如果我尝试这个:
statement.executeQuery("SELECT \""+column+"\" FROM \""+table+"\"");
完美运行
只是为了告诉你我的专栏存在于我的表格中。
本声明:
SELECT sum("Points") as test FROM "MyTable"
在SQuirrel Client V3.7中运行
对我的问题有什么想法吗?
答案 0 :(得分:0)
在SQuirrel中使用的相同声明应该有效。这与Java引用相同:
statement.executeQuery("SELECT sum(\"Points\") FROM \"MyTable\"");
看起来您正在从程序和SQuirrel连接到不同的数据库。尝试在SQuirrel和程序中使用与数据库文件相同的绝对路径。您无法同时连接,因此在从程序连接之前需要在SQuirrel中关闭数据库。
答案 1 :(得分:0)
这些是我的导入
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
此声明也未运行:
statement.executeQuery("SELECT sum(\"Points\") FROM \"MyTable\"");
可能是其他人的解决方案:
"SELECT sum(\"Punkte\") as TEST FROM \"Match_Stats\"");
while(table_01.next()){
players.get(i).setPoints(table_01.getInt("TEST"));
}
Alias TEST是关键。