У меня есть таблица, которая содержит много значений NULL в поле электронной почты. Что мне нужно сделать, так это обновить все строки NULL. Для каждой строки NULL мне нужно выполнить хранимую процедуру, которая в основном получает все электронные письма, связанные с идентификатором этого пользователя. Поэтому для каждой строки NULL вызывается эта хранимая процедура, и все поля электронной почты, найденные в этой хранимой процедуре, должны быть объединены вместе и вставлены вместо поля электронной почты NULL из другой таблицы.
Кто-нибудь знает, как реализовать это в TSQL?
Спасибо заранее
РЕДАКТИРОВАТЬ:
Я нашел этот код:
WITH Ranked ( CategoryId, rnk, ProductName )
AS ( SELECT CategoryId,
ROW_NUMBER() OVER( PARTITION BY CategoryId ORDER BY CategoryId ),
CAST( ProductName AS VARCHAR(8000) )
FROM Northwind..Products),
AnchorRanked ( CategoryId, rnk, ProductName )
AS ( SELECT CategoryId, rnk, ProductName
FROM Ranked
WHERE rnk = 1 ),
RecurRanked ( CategoryId, rnk, ProductName )
AS ( SELECT CategoryId, rnk, ProductName
FROM AnchorRanked
UNION ALL
SELECT Ranked.CategoryId, Ranked.rnk,
RecurRanked.ProductName + ', ' + Ranked.ProductName
FROM Ranked
INNER JOIN RecurRanked
ON Ranked.CategoryId = RecurRanked.CategoryId
AND Ranked.rnk = RecurRanked.rnk + 1 )
SELECT CategoryId, MAX( ProductName )
FROM RecurRanked
GROUP BY CategoryId;
Однако я не могу заставить его работать в моем случае.
По сути, вместо использования хранимой процедуры я могу просто использовать оператор select, чтобы получить одну строку со всеми необходимыми электронными письмами. По сути, мне нужно объединить эти возвращенные электронные письма в одну строку.