<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
mysql> CREATE TABLE `TEST_TB_GRADE` ( -> `ID` int(10) NOT NULL AUTO_INCREMENT, -> `USER_NAME` varchar(20) DEFAULT NULL, -> `COURSE` varchar(20) DEFAULT NULL, -> `SCORE` float DEFAULT '0', -> PRIMARY KEY (`ID`) -> ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
插入資料:
mysql> insert into TEST_TB_GRADE(USER_NAME, COURSE, SCORE) values -> ("張三", "數學", 34), -> ("張三", "語文", 58), -> ("張三", "英語", 58), -> ("李四", "數學", 45), -> ("李四", "語文", 87), -> ("李四", "英語", 45), -> ("王五", "數學", 76), -> ("王五", "語文", 34), -> ("王五", "英語", 89);
查詢表:
mysql> select * from test_tb_grade; +----+-----------+--------+-------+ | ID | USER_NAME | COURSE | SCORE | +----+-----------+--------+-------+ | 1 | 張三 | 數學 | 34 | | 2 | 張三 | 語文 | 58 | | 3 | 張三 | 英語 | 58 | | 4 | 李四 | 數學 | 45 | | 5 | 李四 | 語文 | 87 | | 6 | 李四 | 英語 | 45 | | 7 | 王五 | 數學 | 76 | | 8 | 王五 | 語文 | 34 | | 9 | 王五 | 英語 | 89 | +----+-----------+--------+-------+
不用聚集函數和group by語句:
mysql> SELECT user_name , -> (CASE course WHEN '數學' THEN score ELSE 0 END ) 數學, -> (CASE course WHEN '語文' THEN score ELSE 0 END ) 語文, -> (CASE course WHEN '英語' THEN score ELSE 0 END ) 英語 -> FROM test_tb_grade; +-----------+--------+--------+--------+ | user_name | 數學 | 語文 | 英語 | +-----------+--------+--------+--------+ | 張三 | 34 | 0 | 0 | | 張三 | 0 | 58 | 0 | | 張三 | 0 | 0 | 58 | | 李四 | 45 | 0 | 0 | | 李四 | 0 | 87 | 0 | | 李四 | 0 | 0 | 45 | | 王五 | 76 | 0 | 0 | | 王五 | 0 | 34 | 0 | | 王五 | 0 | 0 | 89 | +-----------+--------+--------+--------+
用group by語句:
mysql> SELECT user_name , -> (CASE course WHEN '數學' THEN score ELSE 0 END ) 數學, -> (CASE course WHEN '語文' THEN score ELSE 0 END ) 語文, -> (CASE course WHEN '英語' THEN score ELSE 0 END ) 英語 -> FROM test_tb_grade -> group by user_name; +-----------+--------+--------+--------+ | user_name | 數學 | 語文 | 英語 | +-----------+--------+--------+--------+ | 張三 | 34 | 0 | 0 | | 李四 | 45 | 0 | 0 | | 王五 | 76 | 0 | 0 | +-----------+--------+--------+--------+
用group by語句和聚集函數實現行轉列:
mysql> SELECT user_name , -> MAX(CASE course WHEN '數學' THEN score ELSE 0 END ) 數學, -> MAX(CASE course WHEN '語文' THEN score ELSE 0 END ) 語文, -> MAX(CASE course WHEN '英語' THEN score ELSE 0 END ) 英語 -> FROM test_tb_grade -> group by user_name; +-----------+--------+--------+--------+ | user_name | 數學 | 語文 | 英語 | +-----------+--------+--------+--------+ | 張三 | 34 | 58 | 58 | | 李四 | 45 | 87 | 45 | | 王五 | 76 | 34 | 89 | +-----------+--------+--------+--------+
CREATE TABLE `TEST_TB_GRADE2` ( `ID` int(10) NOT NULL AUTO_INCREMENT, `USER_NAME` varchar(20) DEFAULT NULL, `CN_SCORE` float DEFAULT NULL, `MATH_SCORE` float DEFAULT NULL, `EN_SCORE` float DEFAULT '0', PRIMARY KEY (`ID`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
插入資料:
insert into TEST_TB_GRADE2(USER_NAME, CN_SCORE, MATH_SCORE, EN_SCORE) values ("張三", 34, 58, 58), ("李四", 45, 87, 45), ("王五", 76, 34, 89);
查詢:
mysql> select * from test_tb_grade2; +----+-----------+----------+------------+----------+ | ID | USER_NAME | CN_SCORE | MATH_SCORE | EN_SCORE | +----+-----------+----------+------------+----------+ | 1 | 張三 | 34 | 58 | 58 | | 2 | 李四 | 45 | 87 | 45 | | 3 | 王五 | 76 | 34 | 89 | +----+-----------+----------+------------+----------+
不求並集:
mysql> select user_name, '語文' COURSE , CN_SCORE as SCORE from test_tb_grade2; +-----------+--------+-------+ | user_name | COURSE | SCORE | +-----------+--------+-------+ | 張三 | 語文 | 34 | | 李四 | 語文 | 45 | | 王五 | 語文 | 76 | +-----------+--------+-------+
求並集:
mysql> select user_name, '語文' COURSE , CN_SCORE as SCORE from test_tb_grade2 -> union select user_name, '數學' COURSE, MATH_SCORE as SCORE from test_tb_grade2 -> union select user_name, '英語' COURSE, EN_SCORE as SCORE from test_tb_grade2; +-----------+--------+-------+ | user_name | COURSE | SCORE | +-----------+--------+-------+ | 張三 | 語文 | 34 | | 李四 | 語文 | 45 | | 王五 | 語文 | 76 | | 張三 | 數學 | 58 | | 李四 | 數學 | 87 | | 王五 | 數學 | 34 | | 張三 | 英語 | 58 | | 李四 | 英語 | 45 | | 王五 | 英語 | 89 | +-----------+--------+-------+
order by語句:
mysql> select user_name, '語文' COURSE , CN_SCORE as SCORE from test_tb_grade2 -> union select user_name, '數學' COURSE, MATH_SCORE as SCORE from test_tb_grade2 -> union select user_name, '英語' COURSE, EN_SCORE as SCORE from test_tb_grade2 -> order by user_name,COURSE; +-----------+--------+-------+ | user_name | COURSE | SCORE | +-----------+--------+-------+ | 張三 | 數學 | 58 | | 張三 | 英語 | 58 | | 張三 | 語文 | 34 | | 李四 | 數學 | 87 | | 李四 | 英語 | 45 | | 李四 | 語文 | 45 | | 王五 | 數學 | 34 | | 王五 | 英語 | 89 | | 王五 | 語文 | 76 | +-----------+--------+-------+
到此這篇關於mysql 行轉列與列傳行的文章就介紹到這了,更多相關mysql 行轉列與列傳行內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45