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

MonetDB如何将逗号分隔列拆分为单独行

在MonetDB中拆分逗号分隔列到多行

要解决这个问题,你需要先把CLOB类型的列转成字符串,再拆分成数组,最后用unnest展开数组,具体操作如下:

  1. 转换CLOB为字符串:MonetDB的字符串拆分函数不直接支持CLOB类型,先用CAST(items AS VARCHAR)将目标列转换为VARCHAR类型。
  2. 拆分字符串为数组:使用split函数把逗号分隔的字符串拆成数组——你的数据里分隔符是, (逗号加空格),所以参数填, ;如果要兼容逗号前后有无空格的情况,改用正则拆分regexp_split_to_array(CAST(items AS VARCHAR), '\s*,\s*')。
  3. 用unnest展开数组:把拆分后的数组传入unnest,就能得到每行一个值的结果。

最终可用的SQL语句:

SELECT unnest(split(CAST(items AS VARCHAR), ', ')) AS Items
FROM your_table;

如果需要兼容不规则的空格,改用正则拆分:

SELECT unnest(regexp_split_to_array(CAST(items AS VARCHAR), '\s*,\s*')) AS Items
FROM your_table;

为什么之前的语句报错?

你直接对CLOB列调用unnest会报错,是因为MonetDB的unnest仅支持数组类型的输入,而CLOB是大对象类型,必须先转成字符串再拆分成数组,才能被unnest处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 16:07:36