Возникла задача по разбиения строкового столбца, в котором есть разделители, например, точка с запятой на отдельные столбцы. Для этого из оригинальной строки нужно получать подстроки с учетом порядкового номера/индекса. Сделать это можно, написав sql-функцию следующего вида:
CREATE FUNCTION [dbo].[f_GetValueFromSeparatedStringByIndex]
(
@InputString nvarchar(MAX),
@Index int,
@Separator nvarchar(1) = ';'
)
RETURNS nvarchar(255)
AS
BEGIN
DECLARE @Result nvarchar(255) = NULL
SELECT @Result = TRIM(Value)
FROM (
SELECT TRIM(value) as Value, ROW_NUMBER() OVER(ORDER BY (SELECT 1)) as OrderNumber
FROM string_split(@InputString, @Separator)
) as t
WHERE OrderNumber = @Index
RETURN @Result
END
Комментариев нет:
Отправить комментарий