在SQL-Server的工作方法,我有如下表:如何做到這一點透視(轉)
visit temperature treatment denom num pct
A <38°C 1 101 98 97.0
A 38.0-38.4°C 1 103 2 1.9
A 38.5-38.9°C 1 100 1 1.0
A <38°C 2 100 97 97.0
A 38.0-38.4°C 2 100 1 1.0
A 38.5-38.9°C 2 102 4 3.9
B <38°C 1 101 89 88.1
B 38.0-38.4°C 1 100 2 2.0
B 38.5-38.9°C 1 105 1 1.0
B <38°C 2 104 96 96.4
B 38.0-38.4°C 2 104 5 1.8
B 38.5-38.9°C 2 100 3 3.0
應該怎樣做,以使表看起來像這樣?:
visit temperature name _1 _2
A <38°C denom 101.0 100.0
A <38°C num 98.0 97.0
A <38°C pct 97.0 97.0
A 38.0-38.4°C denom 103.0 100.0
A 38.0-38.4°C num 2.0 1.0
A 38.0-38.4°C pct 1.9 1.0
A 38.5-38.9°C denom 100.0 102.0
A 38.5-38.9°C num 1.0 4.0
A 38.5-38.9°C pct 1.0 3.9
B <38°C denom 101.0 104.0
B <38°C num 89.0 96.0
B <38°C pct 88.1 96.4
B 38.0-38.4°C denom 100.0 104.0
B 38.0-38.4°C num 2.0 5.0
B 38.0-38.4°C pct 2.0 1.8
B 38.5-38.9°C denom 105.0 100.0
B 38.5-38.9°C num 1.0 3.0
B 38.5-38.9°C pct 1.0 3.0
其中數字列中的_n是治療發生的次數,對於某些訪問可能有500次治療,如何有效處理這些數據,而無需將_1指定爲第一個旋轉列,_2作爲第二個旋轉列,...,_n作爲最後一個樞軸列?
感謝
你真的想在輸出500列?這是否會有意義,即人們是否真的要閱讀所有500列?通過有效地引用查詢的性能,或者不必寫出列,例如'(1),[2],[3],... [n])的PIVOT(最大(價值)治療)如果只有3種治療方案,那麼應該只有3列? – GarethD 2015-04-02 16:35:27