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

如何用STRING_SPLIT拆分含浮点值的数组为独立唯一行?

解决SQL拆分varchar数组为独立行的问题

你的SQL出现重复整串结果的核心原因是:SELECT子句引用的是原表的VALUE列,而非拆分后生成的f.VALUE字段,导致每次拆分操作都返回完整的原字符串,进而产生重复行。

以下是两种可行的解决方案:

方法一:先清理字符串再拆分

先移除数组的方括号,再按逗号拆分,最后去除每个元素的前后空格:

SELECT TRIM(f.value) AS value
FROM your_table
CROSS APPLY STRING_SPLIT(REPLACE(REPLACE(your_table.value, '[', ''), ']', ''), ',') AS f

方法二:拆分后清理单个元素

先按逗号拆分原字符串,再对每个拆分出的元素清理方括号和空格:

SELECT TRIM(REPLACE(REPLACE(f.value, '[', ''), ']', '')) AS value
FROM your_table
CROSS APPLY STRING_SPLIT(your_table.value, ',') AS f

确保值唯一(可选)

如果数组中存在重复值,需要去重的话,可添加DISTINCT关键字:

SELECT DISTINCT TRIM(f.value) AS value
FROM your_table
CROSS APPLY STRING_SPLIT(REPLACE(REPLACE(your_table.value, '[', ''), ']', ''), ',') AS f

执行以上语句后,会得到预期的独立行结果:

value
207.0
206.8
205.6

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 18:22:46