Объединить две строки в одну без дубликатов - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть две строки:

DECLARE @str1 varchar(max) = '[First Name],[Last Name],[Middle Name]'
DECLARE @str2 varchar(max) = '[First Name],[Pin Code],[Address],[Last Name]'

Хотите объединить две строки в одну без дубликатов.

Ожидаемый результат:

str3
-------------------------------------------------------------
[First Name],[Last Name],[Middle Name],[Pin Code],[Address]

1 Ответ

0 голосов
/ 21 ноября 2018

Вы можете использовать STRING_SPLIT() и DISTINCT как

DECLARE @str1 varchar(max) = '[First Name],[Last Name],[Middle Name]';
DECLARE @str2 varchar(max) = '[First Name],[Pin Code],[Address],[Last Name]';

SELECT DISTINCT *
FROM STRING_SPLIT(@Str1 +','+ @Str2, ',');

или

DECLARE @str1 varchar(max) = '[First Name],[Last Name],[Middle Name]';
DECLARE @str2 varchar(max) = '[First Name],[Pin Code],[Address],[Last Name]';

SELECT DISTINCT *
FROM STRING_SPLIT(CONCAT(@Str1, ',', @Str2), ',');

, чтобы получить его какодна строка

declare @result varchar(max) = '';

SELECT @result =  @result + value
FROM STRING_SPLIT(CONCAT(@Str1, ',', @Str2), ',')
group by value;

SELECT @result;

Демо

, и поскольку вы работаете на SQL Server 2008, вам необходимо создать собственную функцию, например вот этот .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...