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 列行轉換SQL
- sql的行轉列(PIVOT)與列轉行(UNPIVOT)SQL
- sql實現行轉列SQL
- My SQL 列轉行操作SQL
- Oracle行轉列、列轉行的Sql語句總結OracleSQL
- SQL 行轉列 PIVOT 學習示例SQL
- SQL行轉列統計問題SQL
- Oracle 行轉列的sql語句OracleSQL
- Databricks 第11篇:Spark SQL 查詢(行轉列、列轉行、Lateral View、排序)SparkSQLView排序
- 老生常談SQL2005語句實現行轉列,列轉行SQL
- Mysql - 行轉列、列轉行MySql
- Spark SQL中列轉行(UNPIVOT)的兩種方法SparkSQL
- hive經典案列--top N(行轉列\列轉行)Hive
- oracle 11g的行轉列、列轉行Oracle
- sql內建函式pivot強大的行轉列功能SQL函式
- mysql列轉行MySql
- oracle 列轉行Oracle
- postgresql 列轉行SQL
- mysql 行轉列MySql
- oracle列轉行Oracle
- UltraEdit 列操作及列轉行
- oracle行列轉換-行轉列Oracle
- oracle行列轉換-列轉行Oracle
- 動態行轉列
- DB2行列轉置之行轉列DB2
- 解析SQL Server中行轉列問題SQLServer
- 行變列構建sql語句SQL
- oracle中多列轉行Oracle
- Hive行轉列函式Hive函式
- 動態固定行轉列
- mysql基礎 行轉列MySql
- 行轉列的應用
- Kettle實現行轉列
- Oracle行轉列函式Oracle函式
- SQL 中使用WMSYS.WM_CONCAT把列轉為行來顯示SQL
- T-SQL——將字串轉為單列SQL字串
- 行列轉換,列行轉換統計