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

如何用string_split结合CROSS APPLY将存储过程输出字符串转整数

修正后的实现代码

你的代码存在两个核心问题:一是没有捕获存储过程输出的ResultTable结果集,二是定义的临时表结构与后续查询需求不匹配。以下是正确的实现方案:

-- 第一步:定义表变量存储存储过程的输出结果
DECLARE @ProcResult TABLE (string_data VARCHAR(MAX))
-- 捕获存储过程返回的ResultTable
INSERT INTO @ProcResult
EXEC dbo.ProcName

-- 第二步:定义存储拆分后整数的临时表
DECLARE @TempTable TABLE (SplitInt INT)
-- 拆分string_data并转换为int后插入
INSERT INTO @TempTable (SplitInt)
SELECT CAST(s.item AS INT)
FROM @ProcResult
CROSS APPLY STRING_SPLIT(string_data, ',') s

关键修正点说明

  • 必须用INSERT ... EXEC语法捕获存储过程的输出结果,否则无法对存储过程返回的string_data列进行后续处理
  • 原代码中@TempTable仅定义了SplitInt列,不存在string_data字段,直接从@TempTable关联拆分函数会报错
  • 拆分时只需提取STRING_SPLIT返回的item字段并转换为INT,无需使用SELECT *(避免引入无关列)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 12:20:54