У меня есть таблица, содержащая множество NULL в поле электронной почты. Мне нужно обновить все строки NULL. Для каждой строки NULL мне нужно вынести хранимую процедуру, которая в основном получает все электронные письма, связанные с идентификатором этого пользователя. Поэтому для каждой строки NULL эта хранимая процедура вызывается, и все поля электронной почты, найденные в этой хранимой процедуре, должны быть объединены вместе и вставлены вместо поля NULL электронной почты из другой таблицы.Объединение строк из хранимой процедуры в другую таблицу в TSQL
Кто-нибудь знает, как реализовать это в TSQL?
Большое спасибо заранее
EDIT:
Я нашел этот код:
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, чтобы получить одну строку со всеми необходимыми электронными письмами. То, что мне по существу нужно сделать, - это объединить эти возвращенные письма в одну строку.
Как ваша хранимая процедура возвращает электронные письма? – Lamak
Я пытаюсь по этой ссылке: http://www.projectdmx.com/tsql/rowconcatenate.aspx, но я не могу заставить его работать. @Lamak Хранимая процедура просто возвращает список строк с адресами электронной почты – seedg
, должен ли он быть сохраненным proc? UDF был бы более полезен здесь, поскольку он может быть вызван внутри оператора TSQL. –