SQL进阶教程

本书是《SQL基础教程》进阶教程,同样是去年书香节拿到的书,今天刚打开,想能够尽快读完

CASE表达式

CASE表达式写法如下

-- 简单CASE表达式
CASE sex
    WHEN '1' THEN '男'
    WHEN '2' THEN '女'
ELSE '其他' END

-- 搜索CASE 表达式
CASE WHEN sex = '1' THEN '男'
     WHEN sex = '2' THEN '女'
ELSE '其他' END

使用CASE表达式可以快速进行归类

-- 按照县名分类统计男女人口数量
SELECT pref_name AS '县名',
       SUM(CASE WHEN sex = '1' THEN population ELSE 0 END) AS '男',
       SUM(CASE WHEN sex = '2' THEN population ELSE 0 END) AS '女'
FROM PopTbl2 GROUP BY pref_name

新手用 WHERE 子句进行条件分支,高手用 SELECT 子句进行条件分支。

UPDATE语句里进行条件分支

  1. 对当前工资为 30 万日元以上的员工,降薪 10%
  2. 对当前工资为 25 万日元以上且不满 28 万日元的员工,加薪 20%
UPDATE Salaries
SET salary =
  CASE WHEN salary >= 300000 THEN salary * 0.9
       WHEN salary >= 250000 AND salary < 280000 THEN salary * 1.2
       ELSE salary END
Comments
Write a Comment