You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

H2数据库如何为VALUES子句定义隐式列名 SQL语法问题

报错原因

H2的SQL语法规范对VALUES行值构造器生成的派生表的别名定义有明确要求:当需要同时指定表别名和自定义列名时,必须在表别名前显式添加AS关键字。而DB2支持省略该关键字,因此直接迁移的语句会触发42000语法错误。

H2环境可执行的正确写法
select * from 
(values(0),(1)) AS ones(n), 
(values(0),(1)) AS tens(n)
多数据库兼容写法

如果需要语句同时适配DB2、H2等多种数据库,可以改用通用的子查询写法,避免不同数据库对VALUES派生表别名的语法差异:

select * from 
(select 0 n union all select 1) ones,
(select 0 n union all select 1) tens

内容的提问来源于stack exchange,提问作者Shenghao Wu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 07:36:01