我想将像('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;