SQL Server 2016 определяет новые значения в двух столбцах, разделенных запятыми - PullRequest
0 голосов
/ 30 сентября 2019

У меня есть таблица SQL Server 2016, в которой хранятся два строковых значения, разделенных запятыми, в одной строке, но в разных столбцах. Например,

table1.value_One = "1,2,3,4,5"

и

table1.value_two = "1,3,5,6,7,8,9"

Один столбец - это идентификаторы текущей публикации, которые также хранятся в нормализованной таблице. Мне нужно поместить недвойственный идентификатор в новую таблицу.

Мне нужно добавить только 6,7,8,9 в нормализованную таблицу. В настоящее время в хранимой процедуре я преобразовываю обе строки в строки, а затем сравниваю значения в поисках нулей

SELECT MEMBERID, cs.Value --SplitData
INTO #Temp2
FROM [ADMIN_API_Master_Members_List]
CROSS APPLY STRING_SPLIT ('1,2,3,4,5', ',') cs
WHERE MEMBERID = 1000

и

SELECT MEMBERID, cs.Value --SplitData
INTO #Temp1
FROM [ADMIN_API_Master_Members_List]
CROSS APPLY STRING_SPLIT ('1,3,5,6,7,8,9', ',') cs
WHERE MEMBERID = 1000

Затем беру новые значения и помещаю их в другоеtmp table перед вставкой в ​​основной стол.

SELECT dbo.Temp2.Value
INTO #Temp3
FROM dbo.Temp2 
LEFT OUTER JOIN dbo.Temp1 ON dbo.Temp2.Value = dbo.Temp1.Value
WHERE (dbo.Temp1.Value IS NULL)

Должен быть более эффективный способ, чем то, что я делаю. Любая помощь приветствуется

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