我有一个非常简单的操作,但我不知道如何进行。在存储过程中,我得到一个由逗号分隔的充满 Id 的字符串,因此我需要分隔该字符串并在INSERT
. 但我不知道如何使用每个部分,split
这就是我所拥有的:
select * from string_split(@listaDePagosErrores, ',')
--ahora quiero usar los splits en un insert
INSERT INTO[dbo].[ProgramacionIngresos]
(IdError)
VALUES
(split[1]) -- ? ? ? ? o algo así ?
SELECT * FROM [ProgramacionIngresos]
正如我在评论中提到的。您将无法使用该功能
STRING_SPLIT
,因为它是从版本 13 (SQL Server 2016) 开始引入的,并且您拥有的是版本 11。您将不得不构建自己的功能。在此 Stack Overflow 答案中,有一个功能可以帮助您满足您的需求:
要使用该功能将是:
到目前为止,您只有一个表,每条记录由函数中声明的值分隔。要使
INSERT
from aSELECT
如下所示:拆分链的方法有很多;我建议在 CURSOR 中使用函数进行拆分并将值存储在 TABLE 中,然后对光标执行 WHILE 并在其中执行一些 INSERT'S 直到循环完成。
我给你举几个例子:
这里的功能:
这里的光标:
在这里,您可以打开和关闭 CURSOR 以执行 WHILE :
试着告诉我它是怎么回事。
string_split 函数从 SQL Server 2016 版开始可用。也就是说,它的实现如下: