1. 程式人生 > 其它 >SQL中的case when then else end用法(資料庫內容縱向變橫向)

SQL中的case when then else end用法(資料庫內容縱向變橫向)

SQL中的case when then else end用法

達夢資料庫建表SQL

CREATE TABLE "TEST"."CJT"
(
"ID" INT NOT NULL,
"KC" VARCHAR(50),
"FS" INT,
"NAME" VARCHAR(50),
CLUSTER PRIMARY KEY("ID")) STORAGE(ON "TEST", CLUSTERBTR) ;

COMMENT ON TABLE "TEST"."CJT" IS '成績表';
COMMENT ON COLUMN "TEST"."CJT"."ID" IS '主鍵';
COMMENT ON COLUMN "TEST"."CJT"."KC" IS
'課程名稱'; COMMENT ON COLUMN "TEST"."CJT"."FS" IS '分數'; COMMENT ON COLUMN "TEST"."CJT"."NAME" IS '姓名';

執行SQL

SELECT 
NAME AS "姓名",
(CASE KC WHEN '語文' THEN FS ELSE 0 END) AS "語文",
(CASE KC WHEN '數學' THEN FS ELSE 0 END) AS "數學",
(CASE KC WHEN '英語' THEN FS ELSE 0 END) AS "英語"
FROM TEST.CJT

執行SQL

SELECT
NAME AS "姓名", MAX(CASE KC WHEN '語文' THEN FS ELSE 0 END) AS "語文", MAX(CASE KC WHEN '數學' THEN FS ELSE 0 END) AS "數學", MAX(CASE KC WHEN '英語' THEN FS ELSE 0 END) AS "英語" FROM TEST.CJT GROUP BY CJT.NAME;