電子メールフィールドに多くのNULLを含むテーブルがあります。私がする必要があるのは、すべての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;
:私はこのコードを発見した
:事前に
感謝
EDIT。
基本的には、ストアドプロシージャを使用する代わりに、select文を使用して必要なすべての電子メールを1行取得するだけで済みます。私が本質的に必要とするのは、返されたこれらの電子メールを1つの行に連結することです。このことから
ストアドプロシージャはどのように電子メールを返しますか? – Lamak
私はこのリンクから試しています:http://www.projectdmx.com/tsql/rowconcatenate.aspxしかし、私はそれを動作させることができません。 @Lamakストアドプロシージャは、単に電子メールの行のリストを返します – seedg
ストアドプロシージャでなければなりませんか? TSQLステートメント内で呼び出すことができるので、ここでUDFを使用する方が便利です –