SQL列轉行
CREATE TABLE T_score
(
id int primary key auto_increment,
name varchar(20),
subject varchar(30),
score float
)
欄位說明:
id 主鍵
name 名稱
subject 課程
score 分數
新增資料:
INSERT INTO T_score (name,subject,score) values(‘悟空’, ‘語文’, 80);
INSERT INTO T_score (name,subject,score) values( ‘悟空’, ‘數學’, 90);
INSERT INTO T_score (name,subject,score) values( ‘悟空’, ‘英語’, 70);
INSERT INTO T_score (name,subject,score) values( ‘悟空’, ‘生物’, 85);
INSERT INTO T_score (name,subject,score) values( ‘沙僧’, ‘語文’, 80);
INSERT INTO T_score (name,subject,score) values( ‘沙僧’, ‘數學’, 92);
INSERT INTO T_score (name,subject,score) values( ‘沙僧’, ‘英語’, 76);
INSERT INTO T_score (name,subject,score) values( ‘沙僧’, ‘生物’, 88);
INSERT INTO T_score (name,subject,score) values( ‘八戒’, ‘語文’, 60);
INSERT INTO T_score (name,subject,score) values( ‘八戒’, ‘數學’, 82);
INSERT INTO T_score (name,subject,score) values( ‘八戒’, ‘英語’, 96);
INSERT INTO T_score (name,subject,score) values( ‘八戒’, ‘生物’, 78);
INSERT INTO T_score (name,subject,score) values( ‘唐僧’, ‘語文’, 44);
INSERT INTO T_score (name,subject,score) values( ‘唐僧’, ‘數學’, 30);
INSERT INTO T_score (name,subject,score) values( ‘唐僧’, ‘英語’, 55);
INSERT INTO T_score (name,subject,score) values( ‘唐僧’, ‘生物’, 66);
請查詢:
姓名 語文 英語 數學 生物
八戒 60 96 82 78
列轉行:
列轉行
SELECT name,
MAX(CASE subject WHEN ‘語文’ THEN score ELSE 0 END) 語文,
MAX(CASE subject WHEN ‘英語’ THEN score ELSE 0 END) 英語,
MAX(CASE subject WHEN ‘數學’ THEN score ELSE 0 END) 數學,
MAX(CASE subject WHEN ‘生物’ THEN score ELSE 0 END) 生物
FROM t_score GROUP BY name;
使用MAX可以,也可以使用SUM都行。
相關文章
- SQL 行轉列,列轉行SQL
- sql的行轉列(PIVOT)與列轉行(UNPIVOT)SQL
- My SQL 列轉行操作SQL
- Oracle行轉列、列轉行的Sql語句總結OracleSQL
- SQL 行轉列 PIVOT 學習示例SQL
- Databricks 第11篇:Spark SQL 查詢(行轉列、列轉行、Lateral View、排序)SparkSQLView排序
- 行轉列與列轉行
- Mysql - 行轉列、列轉行MySql
- Spark SQL中列轉行(UNPIVOT)的兩種方法SparkSQL
- hive經典案列--top N(行轉列\列轉行)Hive
- oracle列轉行Oracle
- T-SQL——將字串轉為單列SQL字串
- mysql基礎 行轉列MySql
- oracle中多列轉行Oracle
- Hive行轉列函式Hive函式
- mysql動態行轉列MySql
- T-SQL——將字串轉換為多列SQL字串
- sql、oracle資料多行轉單行SQLOracle
- MySQL 行轉列詳情鍾萼MySql
- oracle行轉列、列轉行、連續日期數字實現方式及mybatis下實現方式OracleMyBatis
- excel列轉行怎麼做 excel如何轉置行列Excel
- Linux命令之grep/sed/awk等行轉列Linux
- List,DataTable實現行轉列的通用方案
- 資料庫知識點(2)——行轉列資料庫
- cmd命令列下用命令執行SQL指令碼到SQL Server資料庫中命令列SQL指令碼Server資料庫
- iOS 字典轉陣列,陣列轉字典iOS陣列
- 使用SQL_TRACE進行資料庫診斷(轉)SQL資料庫
- 直播平臺原始碼,FlinkSQL實現行轉列原始碼SQL
- 用listagg函式分組實現列轉行函式
- unnest array_contains 行轉列 id in效率高AI
- PHP xml 轉陣列 陣列轉 xml 操作PHPXML陣列
- SQL Server資料庫基礎之行資料轉換為列資料SQLServer資料庫
- [轉帖]SQL Server簡潔查詢正在執行的程序SQLServer
- Oracle資料庫關於SQL的執行計劃(轉)Oracle資料庫SQL
- js將陣列轉字元,字元轉回陣列JS陣列字元
- 在Linux命令列中進行大小寫字元轉換Linux命令列字元
- sql隱式轉換SQL
- SQL 轉置計算SQL