首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行DB2 (在DB2模式下)时的DB2语法

运行DB2 (在DB2模式下)时的DB2语法
EN

Stack Overflow用户
提问于 2011-12-01 10:25:06
回答 1查看 2.3K关注 0票数 1

我有以下查询,它在直接针对DB2运行时运行得很好:

代码语言:javascript
复制
String sql =
"select slutt_dato + 1 day  as tDato from klv80201 " +
"union " +
"select fra_dato as tDato from klv12101 where avtalenr = :avtalenr and kundenr = :kundenr " +
"union " +
"select fra_dato as tDato from klv12401 where avtalenr = :avtalenr and kundenr = :kundenr and MEDLEMSTATU < '32' " +
"order by tDato desc fetch first 1 rows only;";

但是,当我使用H2作为数据库使用以下配置运行它时:

代码语言:javascript
复制
jdbc:h2:mem:play;MODE=DB2;LOCK_TIMEOUT=10000;LOCK_MODE=0

我收到以下错误消息:

org.h2.jdbc.JdbcSQLException:列" slutt_dato“未找到;SQL语句:选择slutt_dato+1 day,从klv80201 union选择fra_dato as tDato from klv12101,其中avtalenr =?昆登尼呢?联合选择fra_dato作为tDato,从klv12401选择avtalenr =?昆登尼呢?和MEDLEMSTATU < '32‘顺序由tDato desc只取前1行;42122-149

如果删除"+1天“,则查询在H2中运行良好。来自H2 JDBC驱动程序的错误消息是错误的,列"SLUTT_DATO“确实存在,并且在删除"+1天”时运行良好。

有什么好的建议可以解释为什么H2会这样做呢?是虫子还是我误解了什么?

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-01 15:08:28

H2不理解+ 1 day,因此在这里感到困惑。不过,这将起作用:

代码语言:javascript
复制
"select slutt_dato + 1 as tDato from klv80201 "

但我担心这对IBM DB2没有用.我不认为在IBM DB2和H2上都能很容易地解决这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8339779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档