Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SQL语句“WITH”关键字中的语法错误_Java_Sql_H2 - Fatal编程技术网

Java SQL语句“WITH”关键字中的语法错误

Java SQL语句“WITH”关键字中的语法错误,java,sql,h2,Java,Sql,H2,我们使用的是h2版本1.3.171,windows 7 64位和jdk 1.7.0_25 当我们尝试运行SQL语句时: 将TMP1作为从表1中选择col1,从TMP1中选择TMP1.col1 我们得到以下例外情况: org.h2.jdbc.JdbcSQLException:SQL语句中的语法错误 TMP1为[*]时,从报价中选择请求号 从TMP1中选择TMP1.REQUEST_NO; 预期;SQL语句: 将TMP1作为从报价中选择请求号 从TMP1[42001-171]中选择TMP1.REQUE

我们使用的是h2版本1.3.171,windows 7 64位和jdk 1.7.0_25

当我们尝试运行SQL语句时:

将TMP1作为从表1中选择col1,从TMP1中选择TMP1.col1 我们得到以下例外情况:

org.h2.jdbc.JdbcSQLException:SQL语句中的语法错误 TMP1为[*]时,从报价中选择请求号 从TMP1中选择TMP1.REQUEST_NO; 预期;SQL语句: 将TMP1作为从报价中选择请求号 从TMP1[42001-171]中选择TMP1.REQUEST_NO SQL语句很好,因为我们能够通过SQL Developer成功地执行它

感谢您的帮助


谢谢。

尝试将列定义为CTE定义的一部分:

jdbc:h2:mem:request_no;MODE=Oracle

我认为某些数据库在与一起使用时需要显式列列表。

您使用的是什么数据库?H2不支持常规的通用表表达式,它只支持递归CTE:非常感谢@Gordon Linoff…我能够按照您的解决方案运行查询。在类似的故事中,我还添加了另一个TMP2,无法运行查询。。。你能帮我一下吗?将TMP1REQUEST_NO作为从报价中选择REQUEST_NO,从TMP1中选择TMP1.REQUEST_NO;使用TMP1REQUEST_NO作为从报价中选择REQUEST_NO,TMP2AGENT作为从AGENT_选项卡中选择AGENT,从TMP2中选择TMP2.AGENT;谢谢你的帮助@天线。如果你还有其他问题,你应该把它作为一个问题而不是评论发布。对此感到抱歉。我也创造了一个新的问题,请你看看…这里是链接非常感谢!!!
WITH TMP1(REQUEST_NO) AS
      (SELECT REQUEST_NO FROM QUOTE
      )
SELECT TMP1.REQUEST_NO
FROM TMP1;