SQL中的case when then else end用法(資料庫內容縱向變橫向)
阿新 • • 發佈:2022-01-08
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
SELECTNAME 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;