2012-12-06 52 views
1

我有一個查詢返回的表看起來像:列的行中的SQL Server

Location | November | December | January | February | March | ... | October | 
    CT  30   70   80   90  60    30 
etc. 

,我想它看起來像:

Location | Month | Value | 
    CT  November 30 
    CT  December 70 
    CT  January  80 
      ... 
    CT  October  30 

它看起來像一個UNPIVOT,但由於基表的月份爲列(這些值僅僅是按位置分組的值的總和),因此我沒有將其轉換爲該表單。我已經看到很多行到列的問題,但我還沒有找到一個好的行到列的答案,所以我希望有人能幫助我。

謝謝!

回答

4

你會想要使用UNPIVOT函數。這將您的列的值,並把它變成行:

select location, month, value 
from <yourquery here> 
unpivot 
(
    value 
    for month in (January, February, March, April, May, June, July, August, 
       September, October, November, December) 
) unpiv 

SQL Fiddle with Demo

+0

巨大的幫助,謝謝! – StuckInACube

+0

@ user1883730高興地提供幫助,如果這有幫助,請務必通過左側的複選標記接受。 – Taryn