在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