關於MySQL的行轉列的簡單應用

2021-09-07 17:39:54 字數 2408 閱讀 4767

sql 指令碼

-- 建立表  學生表

create table `student` ( `stuid` varchar(16) not null comment '學號', `stunm` varchar(20) not null comment '學生姓名', primary key (`stuid`) ) collate='utf8_general_ci' engine=innodb; -- 課程表 create table `courses` ( `courseno` varchar(20) not null, `coursenm` varchar(100) not null, primary key (`courseno`) ) comment='課程表' collate='utf8_general_ci' engine=innodb; -- 成績表 create table `score` ( `stuid` varchar(16) not null, `courseno` varchar(20) not null, `scores` float null default null, primary key (`stuid`, `courseno`) ) collate='utf8_general_ci' engine=innodb; -- 插入資料 -- 學生表資料 insert into student (stuid, stunm) values('1001', '張三'); insert into student (stuid, stunm) values('1002', '李四'); insert into student (stuid, stunm) values('1003', '趙二'); insert into student (stuid, stunm) values('1004', '王五'); insert into student (stuid, stunm) values('1005', '**'); insert into student (stuid, stunm) values('1006', '周明'); -- 課程表資料 insert into courses (courseno, coursenm) values('c001', '大學語文'); insert into courses (courseno, coursenm) values('c002', '新視野英語'); insert into courses (courseno, coursenm) values('c003', '離散數學'); insert into courses (courseno, coursenm) values('c004', '概率論與數理統計'); insert into courses (courseno, coursenm) values('c005', '線性代數'); insert into courses (courseno, coursenm) values('c006', '高等數學(一)'); insert into courses (courseno, coursenm) values('c007', '高等數學(二)'); -- 成績表資料 insert into score(stuid, courseno, scores) values('1001', 'c001', 67); insert into score(stuid, courseno, scores) values('1002', 'c001', 68); insert into score(stuid, courseno, scores) values('1003', 'c001', 69); insert into score(stuid, courseno, scores) values('1004', 'c001', 70); insert into score(stuid, courseno, scores) values('1005', 'c001', 71); insert into score(stuid, courseno, scores) values('1006', 'c001', 72); insert into score(stuid, courseno, scores) values('1001', 'c002', 87); insert into score(stuid, courseno, scores) values('1002', 'c002', 88); insert into score(stuid, courseno, scores) values('1003', 'c002', 89); insert into score(stuid, courseno, scores) values('1004', 'c002', 90); insert into score(stuid, courseno, scores) values('1005', 'c002', 91); insert into score(stuid, courseno, scores) values('1006', 'c002', 92); insert into score(stuid, courseno, scores) values('1001', 'c003', 83); insert

MySql 行轉列的問題

昨天遇到了乙個mysql資料庫的查詢問題,工作這麼長時間很久沒動資料庫了,幾乎忘記完了。真失敗!不過後來經過同事一指點,出來了。欣喜萬分啊,這裡寫出來。表1 cms b payment,其中 payment method id 是外來鍵。表2 cms s payment method 主鍵id是cm...

mysql行轉列的例項

準備表和資料 case when 實現行轉列 儲存過程實現行轉列 create procedure line to col begin declare i int declare chinese int declare math int declare english int declare nam...

關於行轉列sql的實現

最近業務需求經常會遇到行轉列的情況出現。個人也是最近接觸到,總結了兩種常用方法,邏輯也非常好理解。之前在網上也看到了不少其他oracle行轉列的方法,有些是oracle特有的函式,放到其他資料庫未必支援。下來我們看兩個簡單,函式經常會使用到的版本。1.建立測試表 create table cc st...