如何在SQL Server存储过程中拆分和获取逗号分隔的字符串?



我想将像('abc', 'xyz', '', '', ..)这样的字符串作为参数传递给存储过程,并在过程内部使用输入中的值从选择查询中获取一些值,并将它们保存在输出变量中。

像这样的东西。

CREATE PROCEDURE DEMO
(@V1 VARCHAR(1000), @V2 VARCHAR(1000) OUTPUT)
AS
BEGIN
SELECT @V2= CONCAT(NAME,VALUE) 
FROM TABLE1 
WHERE ID IN (-- LOGIC TO SPLIT THE @V1 VARIABLE)
-- HERE @V1 IS ('abc','xyz',..) )
END;

如何在 SQL Server 中执行此操作?

你能试试这个吗:

CREATE PROCEDURE DEMO
(@V1 VARCHAR(1000), @V2 VARCHAR(1000) OUTPUT)
AS
BEGIN
SELECT @V2= STRING_AGG (CONVERT(nvarchar(max),CONCAT(NAME,VALUE)), ',')
FROM TABLE1 
WHERE ID IN 
(
SELECT value FROM STRING_SPLIT(@V1,',') 
);
END;

相关内容

  • 没有找到相关文章

最新更新