sql多方法實現列轉行

2021-06-20 19:38:51 字數 1202 閱讀 2888

create table studentscore2 (

[username] nvarchar(50),

[語文] float,

[數學] float,

[英語] float,

[物理] float

)insert into studentscore2(username, [語文], [數學], [英語], [物理])

values

('helen', 100, 90, 85, 80),

('jack', 75, 90, 85, 100)

select * from studentscore2

-----傳統列轉行方法 (union all與group by)

select username, '語文' as course, 

max([語文]) as score 

from studentscore2 

group by username 

union all

select username, '數學' as course, 

max([數學]) as score 

from studentscore2 

group by username 

union all

select username, '英語' as course, 

max([英語]) as score 

from studentscore2 

group by username 

union all

select username, '物理' as course, 

max([物理]) as score 

from studentscore2 

group by username 

----使用unpivot實現列轉行

select username, score, course

from studentscore2

unpivot

(score for course in (語文, 數學, 英語, 物理)

) t--也可以使用 *

select *

from studentscore2

unpivot

(score for course in (語文, 數學, 英語, 物理)

) t

SQL 列轉行的實現

列轉行,逗號拼接指定列的值 sql server中寫法 select stuff select field1 from tablea for xml path 1,1,oracle中寫法 方法一 wmsys.wm concat select wmsys.wm concat field1 from t...

python 列轉行 SQL 行轉列,列轉行

sql 行轉列,列轉行 行列轉換在做報表分析時還是經常會遇到的,今天就說一下如何實現行列轉換吧。行列轉換就是如下圖所示兩種展示形式的互相轉換 行轉列假如我們有下表 select from student pivot sum score for subject in 語文,數學,英語 通過上面 sql...

sql中 列轉行

列轉行,主要是通過union all max來實現。假如有下面這麼乙個表 createtableprogrectdetail progrectname nvarchar 20 工程名稱 overseasupplyint,海外 商供給數量 nativesupply int,國內 商供給數量 south...