SET NOCOUNT ON;
DECLARE
@KeyValue nvarchar(1024),
@Options nvarchar(1024)
SET Options =
'Action:DownloadDocuments|State:1|Site:250104|Ref:19014|Member:12345'
DECLARE @KeyValuesTBL TABLE
(
KeyName nvarchar(80),
KeyValue nvarchar(1024)
)
INSERT INTO @KeyValuesTBL
SELECT
KeyName =
SUBSTRING(value, 1,
ISNULL( NULLIF(CHARINDEX(':', value)-1, -1), 1024)
)
,KeyValue =
CASE CHARINDEX(':', value)
WHEN 0 THEN NULL
ELSE SUBSTRING(value, CHARINDEX(':', value)+1, 1024)
END
FROM STRING_SPLIT(@Options, '|') WHERE (value <> '');
SELECT * FROM @KeyValuesTBL;
DELETE @KeyValuesTBL;
SELECT @Options = 'StartDate=2023-08-14;Mode=1;Like=%TEST%;Flag=true'
INSERT INTO @KeyValuesTBL
SELECT
KeyName =
SUBSTRING(value, 1,
ISNULL( NULLIF(CHARINDEX('=', value)-1, -1), 1024)
)
,KeyValue =
CASE CHARINDEX('=', value)
WHEN 0 THEN NULL
ELSE SUBSTRING(value, CHARINDEX('=', value)+1, 1024)
END
FROM STRING_SPLIT(@Options, ';') WHERE (value <> '');
SELECT * FROM @KeyValuesTBL;
SELECT @KeyValue = KeyValue
FROM @KeyValuesTBL
WHERE (KeyName = 'Flag');
IF (@@ROWCOUNT <> 0) BEGIN
SELECT ISNULL(TRY_CONVERT(bit, @KeyValue), 0) as Flag
END;