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

hjzp0vay  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(291)

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

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中执行此操作?

x6492ojm

x6492ojm1#

你能试试这个吗:

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;

相关问题