我有一個表,其中包含郵件字段中的大量空值。我需要做的是更新所有的NULL行。對於每一個NULL行,我需要執行一個存儲過程,它基本上獲取與該用戶ID相關的所有電子郵件。因此,對於每個NULL行,調用此存儲過程,並且此存儲過程中找到的所有電子郵件字段需要連接在一起,並插入到另一個表中的NULL電子郵件字段的位置。將存儲過程中的行連接到TSQL中的另一個表上
任何人都知道如何在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語句獲得一行所有必要的電子郵件。我基本上需要做的是將這些返回的郵件連接成一行。
您的存儲過程如何返回電子郵件? – Lamak 2012-02-22 13:13:23
我想從這個鏈接:http://www.projectdmx.com/tsql/rowconcatenate.aspx,但我無法得到它的工作。 @Lamak存儲過程只是返回一個包含電子郵件的行列表 – seedg 2012-02-22 13:22:08
它必須是存儲過程嗎? UDF在這裏更加有用,因爲它可以在TSQL語句中調用 – 2012-02-22 13:30:29