获取 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;
输出
| 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
我的 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;
输出
| 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