竖行变横行的查询
SELECT stuName,
SUM(CASE project WHEN '语文' THEN stuScore ELSE 0 END) AS 语文,SUM(CASE project WHEN '数学' THEN stuScore ELSE 0 END) AS 数学,
SUM(CASE project WHEN '英语' THEN stuScore ELSE 0 END) AS 英语
FROM `t_score` GROUP BY stuName ;
======================================================
-- CREATE [OR REPLACE] [FORCE] VIEW view_name
AS subquery
[WITH CHECK OPTION ]
[WITH READ ONLY]
OR REPLACE :若所创建的试图已经存在,ORACLE 自动重建该视图;
FORCE :不管基表是否存在 ORACLE 都会自动创建该视图;
subquery :一条完整的 SELECT 语句,可以在该语句中定义别名;
WITH CHECK OPTION :插入或修改的数据行必须满足视图定义的约束;
WITH READ ONLY :该视图上不能进行任何 DML 操作。
===========================================================
创建一个如后面查询的结果的视图:
CREATE VIEW score_table AS (
SELECT stuName,
SUM(CASE project WHEN '语文' THEN stuScore ELSE 0 END) AS 语文,
SUM(CASE project WHEN '数学' THEN stuScore ELSE 0 END) AS 数学,
SUM(CASE project WHEN '英语' THEN stuScore ELSE 0 END) AS 英语
FROM `t_score` GROUP BY stuName
)
SELECT * FROM score_table
DROP VIEW score_table