Чтобы получить ожидаемые результаты, вы можете создать функцию, которая будет разбивать вашу строку на строки, используя предоставленные разделители.После этого вы можете выполнить дополнительную настройку или применить изменения к возвращенным данным на основе ваших требований.
Шаг 1: Создать функцию
CREATE FUNCTION [dbo].[splitstring] ( @stringToSplit VARCHAR(MAX) ,@Delimiter VARCHAR(10))
RETURNS @returnList TABLE ([Word] [nvarchar] (500))
AS
BEGIN
DECLARE @name NVARCHAR(255)
DECLARE @pos INT
DECLARE @RN INT = 1
WHILE CHARINDEX(@Delimiter, @stringToSplit) > 0
BEGIN
SELECT @pos = CHARINDEX(@Delimiter, @stringToSplit)
SELECT @name = SUBSTRING(@stringToSplit, 1, @pos-1)
INSERT INTO @returnList([Word],RN)
SELECT @name,@RN
SET @RN = @RN + 1
SELECT @stringToSplit = SUBSTRING(@stringToSplit, @pos+1, LEN(@stringToSplit)-@pos)
END
INSERT INTO @returnList([Word],RN)
SELECT @stringToSplit,@RN
RETURN
END
Шаг 2: Получить необходимые данные с помощью этой функции
SELECT A.Word+'/'+B.Word FROM
(
SELECT Word,RN
FROM [dbo].[splitstring]('ABJ/ADD/BKK/KUL/ADD/ABJ','/')
) A
INNER JOIN
(
SELECT Word,RN
FROM [dbo].[splitstring]('ABJ/ADD/BKK/KUL/ADD/ABJ','/')
)B ON A.RN = B.RN-1
Вывод будет -
ABJ/ADD
ADD/BKK
BKK/KUL
KUL/ADD
ADD/ABJ