因爲每一個組可以有三個項目最大的,我會用PIVOT operator:
DECLARE @Test TABLE
(
RowID INT IDENTITY(1,1) PRIMARY KEY
,[Group]VARCHAR(10) NOT NULL
,Item INT NOT NULL
,UNIQUE ([Group], Item)
);
INSERT @Test VALUES ('G1', 1);
INSERT @Test VALUES ('G1', 2);
INSERT @Test VALUES ('G2', 3);
WITH PivotSource
AS
(
SELECT t.[Group], t.Item
,ROW_NUMBER() OVER(PARTITION BY t.[Group] ORDER BY t.RowID) RowNumber
FROM @Test t
)
SELECT pvt.[Group]
,Item1 = ISNULL(CONVERT(VARCHAR(11), pvt.[1]) , 'N/A')
,Item2 = ISNULL(CONVERT(VARCHAR(11), pvt.[2]) , 'N/A')
,Item3 = ISNULL(CONVERT(VARCHAR(11), pvt.[3]) , 'N/A')
FROM PivotSource src
PIVOT (MAX(src.Item) FOR src.RowNumber IN ([1], [2], [3])) pvt;
結果:
怎麼辦數據庫表看起來如何? (模式) –
你有最大數量的列嗎? –
每個組可以有更少或3個項目。 – ANKIT