を複数行のデータを組み合わせる:表は以下の形式である単一の行に
ID Category
1 a
1 b
2 a
2 b
2 c
私は次の形式
ID Category
1 a,b
2 a,b,c
での出力が
を複数行のデータを組み合わせる:表は以下の形式である単一の行に
ID Category
1 a
1 b
2 a
2 b
2 c
私は次の形式
ID Category
1 a,b
2 a,b,c
での出力が
たぶん、このような何か:[IDに基づいて連結した値](の
テストデータ
DECLARE @tbl TABLE(ID INT,Category VARCHAR(100))
INSERT INTO @tbl
VALUES
(1,'a'),
(1,'b'),
(2,'a'),
(2,'b'),
(2,'c')
クエリ
;WITH CTE ----CTE Name
AS
(
SELECT
ROW_NUMBER() OVER(PARTITION BY ID ORDER BY ID) AS RowNbr,
ID,
Category
FROM
@tbl AS tbl
)
SELECT
CTE.ID,
(
STUFF
((
SELECT
','+Category
FROM @tbl AS tbl
WHERE tbl.ID=CTE.ID
FOR XML PATH('')
)
,1,1,'')
) AS Category
FROM
CTE
WHERE
CTE.RowNbr=1
次のクエリを試してください:
SELECT ID,
REPLACE(
(SELECT Category AS [data()]
FROM TableA
WHERE b.ID=ID
ORDER BY Category FOR XML PATH('')),
' ', ', ')
FROM TableB b
GROUP BY ID
私は前回同様のことに直面し、手順を使用して解決しました。あなたは特定のIDのためにカテゴリでループをする必要があります。
可能重複します。http:// stackoverflowの。 com/questions/6603319/idに基づく連結値) –
[連結m任意の行を単一のテキスト文字列に変換できますか?](https://stackoverflow.com/questions/194852/concatenate-many-rows-into-a-single-text-string) –