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

H2数据库使用UNNEST展开数组字段失败的问题

H2数据库数组字段展开问题解决办法

H2数据库不支持直接用SELECT UNNEST(project_numbers) FROM PROJECTS这种语法展开数组字段,得通过JOIN关联的方式实现。

下面是两种可行的写法:

方法一:CROSS JOIN UNNEST

SELECT unnest_item
FROM PROJECTS
CROSS JOIN UNNEST(project_numbers) AS t(unnest_item)

如果需要保留原表其他字段,可加上表别名关联:

SELECT p.*, unnest_item
FROM PROJECTS p
CROSS JOIN UNNEST(p.project_numbers) AS t(unnest_item)

方法二:使用TABLE函数(H2 2.x及以上版本)

SELECT unnest_item
FROM PROJECTS, TABLE(UNNEST(project_numbers)) AS t(unnest_item)

处理数组为NULL的情况

如果存在数组字段为NULL的行,CROSS JOIN会过滤掉这些行,换成LEFT JOIN可保留:

SELECT p.*, unnest_item
FROM PROJECTS p
LEFT JOIN UNNEST(p.project_numbers) AS t(unnest_item) ON 1=1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 07:01:07