我有一個表,看起來像這樣 -無法透過我的查詢透視表?
Id AttributeName AttributeValue
A1 Atr1 A1V1
A1 Atr2 A1V2
A1 Atr3 A1V3
A2 Atr1 A2V1
A2 Atr2 A2V2
A2 Atr3 A3V3
在這個表中的每個ID具有完全相同的屬性,即ATR1,ATR2,ATR3。這些屬性的值是唯一的。
我想轉動此表並得到下面的輸出 -
Id Atr1 Atr2 Atr3
A1 A1V1 A1V2 A1V3
A2 A2V1 A2V2 A2V3
我該怎麼辦呢?
我試過了一個查詢,並且出現錯誤 - Msg 156,Level 15,State 1,Line 21 關鍵字'FOR'附近的語法錯誤。
-- Create a temporary table
DECLARE @MyTable TABLE
(Id varchar(25),
AttributeName varchar(30),
AttributeValue varchar(30))
-- Load Sample Data
INSERT INTO @MyTable VALUES ('A1', 'Atr1', 'A1V1')
INSERT INTO @MyTable VALUES ('A1', 'Atr2', 'A1V2')
INSERT INTO @MyTable VALUES ('A1', 'Atr3', 'A1V3')
INSERT INTO @MyTable VALUES ('A2', 'Atr1', 'A2V1')
INSERT INTO @MyTable VALUES ('A2', 'Atr2', 'A2V2')
INSERT INTO @MyTable VALUES ('A2', 'Atr3', 'A3V3')
SELECT Id, [Atr1], [Atr2],[Atr3]
FROM
(
SELECT ID, AttributeName, AttributeValue
FROM @MyTable) AS SourceTable
PIVOT
(
AttributeValue
FOR AttributeName IN ([ATR1], [ATR2], [ATR3])
) AS pvt
這個例子是改編自 - http://archive.msdn.microsoft.com/SQLExamples/Wiki/View.aspx? title = PIVOTData&referTitle = UNPIVOTData –
對於每個'id',是否有可能存在多個名爲'A1'的重複屬性名稱? – Taryn
@bluefeet - 不太可能。但是,假設發生了,那麼我將如何對此進行查詢?謝謝。 –