获取 ColumnHeader 作为行值及其在另一列中的关联值?

Get ColumnHeader as row value and its associated values in another column?

我的 table BankACTable:

BANK    ACNO    AC_SER      STATE  CITY
-----------------------------------------
ICICI   1220    0987654     MH      NGP
AXIS    4561    5786        AP      HYD
:       :       :           :       :
:       :       :           :       :   

我想要的结果都是这种形式:

ColumnName              ColumnValue
-------------------------------------
AccountName             ICICI           
Amount                  1220
RegistrationNumber      0987654
State                   Maharashtra
Address                 Nagpur
AccountName             AXIS    
Amount                  4561
RegistrationNumber      5786
State                   AP  
Address                 HYD

各位SQL大侠,请帮我搞定这个结果!

像这样使用UNPIVOT

SELECT COL,VAL
FROM (SELECT CONVERT(VARCHAR(30),[BANK])[AccountName], CONVERT(VARCHAR(30),[ACNO]) [Amount], CONVERT(VARCHAR(30),[AC_SER]) as [RegistrationNumber], CONVERT(VARCHAR(30),[STATE])[State], CONVERT(VARCHAR(30),[CITY])[Address] 
      FROM BankAC) BankAC
UNPIVOT(VAL FOR COL IN ([AccountName], [Amount], [RegistrationNumber], [State], [Address])) as upvt;

SQL Fiddle

输出

|                COL |    VAL |
|--------------------|--------|
|        AccountName |  ICICI |
|             Amount |   1220 |
| RegistrationNumber | 987654 |
|              State |     MH |
|            Address |    NGP |
|        AccountName |   AXIS |
|             Amount |   4561 |
| RegistrationNumber |   5786 |
|              State |     AP |
|            Address |    HYD |

不是Pivot,而是Unpivot操作

select 'icici' bank, 1220 acnum, '09876' ac_ser, 'mh111' state, 'ngp11' city
into #a
union
select 'axis' bank, 4561 acnum, '5786' ac_ser, 'ap' state, 'hyd' city

SELECT ColName, ColValue
FROM
(SELECT bank,  ac_Ser, [state], city
FROM #a) t
UNPIVOT
(ColValue for ColName in (bank,  ac_Ser, [state], city)
) AS val