我有一个带逗号的参数。
像@parameter = 'abc,xyz,fgh'
一样
我想把它分开:
column1 column2
1 abc
1 xyz
1 fgh
我有一个触发器,它使用逗号值接收名为 @PackageCode 的参数。现在我想将其值分开并将其保存在表格中。
以下是我迄今为止尝试过的SQLtrigger代码。
CREATE TRIGGER CustomerPackageSplit ON BM_CustomerInfo
FOR INSERT
AS
declare @CustNIC int;
declare @CustID varchar(100);
declare @CustName decimal(10,2);
declare @PackageCode varchar(100);
SELECT @CustNIC = i.CustNIC from inserted i;
SELECT @CustID = i.CustID from inserted i;
SELECT @CustName = i.CustName from inserted i;
SELECT @PackageCode = i.Package from inserted i;
INSERT INTO BM_CustPackage (CustNIC,CustID,CustName,PackageCode)
VALUES (@CustNIC,@CustID,@CustName,@PackageCode)
GO
答案 0 :(得分:1)
在 SQL Server 2016 中,您可以使用string_split
功能(更多信息here)。
这是一个简单的查询,用于分割逗号分隔值:
declare @parameter varchar(100)
set @parameter = 'abc,xyz,fgh'
select 1 as column1, [value] as column2
from string_split(@parameter, ',')
此命令的输出为:
╔═════════╦═════════╗
║ column1 ║ column2 ║
╠═════════╬═════════╣
║ 1 ║ abc ║
║ 1 ║ xyz ║
║ 1 ║ fgh ║
╚═════════╩═════════╝