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

SQL Server使用UNION和STRING_SPLIT时报子查询返回多值错误如何解决

错误原因

STRING_SPLIT 函数的第一个输入参数只接受单个字符串,你写的子查询在表内有多条数据时会返回多个值,不符合入参要求,因此触发报错。

修正后的查询代码

DECLARE @testTable TABLE
(
  ID smallint,
  ACode varchar(64)
)

INSERT INTO @testTable
SELECT 1, 'A1,B2'
UNION ALL
SELECT 2, 'C1,D2'

SELECT s.[value] As ACode
FROM @testTable t
CROSS APPLY STRING_SPLIT(t.ACode, ',') s

实现逻辑说明

CROSS APPLY 会对 @testTable 中的每一行数据单独调用一次 STRING_SPLIT 函数,拆分当前行的 ACode 字段值,所有拆分后的结果会自动合并输出,最终返回的就是你预期的4条拆分后的数据:A1、B2、C1、D2。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 07:24:08