【问题标题】:Get ColumnHeader as row value and its associated values in another column?获取 ColumnHeader 作为行值及其在另一列中的关联值?
【发布时间】:2015-09-18 09:56:58
【问题描述】:

我的表 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大侠,请帮我得到这个结果!

【问题讨论】:

标签: sql sql-server-2008 union pivot-table common-table-expression


【解决方案1】:

不是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

【讨论】:

    【解决方案2】:

    像这样使用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 |
    

    【讨论】:

      猜你喜欢
      • 2022-01-02
      • 1970-01-01
      • 2018-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-09
      • 1970-01-01
      相关资源
      最近更新 更多