私はPIVOTがあなたがここで探しているものだとは信じていません。
行を生成するためにエントリを使用していることがわかりますか?
また、PIVOTは集計関数を使用しているため、これが発生していることはわかりません。
あなたが試すことができるのは、
DECLARE @Table TABLE(
Brand VARCHAR(10),
Product VARCHAR(10)
)
INSERT INTO @Table SELECT 'A','X '
INSERT INTO @Table SELECT 'A','XX'
INSERT INTO @Table SELECT 'A','XXX'
INSERT INTO @Table SELECT 'B','Y'
INSERT INTO @Table SELECT 'B','YY'
INSERT INTO @Table SELECT 'C','Z'
;WITH Vals AS (
SELECT *,
ROW_NUMBER() OVER(PARTITION BY Brand ORDER BY (SELECT NULL)) RID
FROM @Table
)
, RIDs AS (
SELECT DISTINCT
RID
FROM Vals
)
SELECT vA.Product [A],
vB.Product [B],
vC.Product [C]
FROM RIDs r LEFT JOIN
Vals vA ON r.RID = vA.RID
AND vA.Brand = 'A' LEFT JOIN
Vals vB ON r.RID = vB.RID
AND vB.Brand = 'B' LEFT JOIN
Vals vC ON r.RID = vC.RID
AND vC.Brand = 'C'