DECODE Oracle 特有
CASE WHEN Oracle , SQL Server, MySQL 都可用。
科目表: sid name;
个人信息表: tid name sex age;
成绩表: id score sid tid;
CASE WHEN 可以 等于的条件, 也可以 大于等于 之类的条件。
而 decode 好像只能 等于的条件。
下面是一个 CASE WHEN 的例子:
SELECT
tid as 学号,
COUNT(sid) AS 选择几种科目,
SUM( CASE WHEN score >=60 THEN 1 ELSE 0 END )
/ COUNT(score) AS 及格率
FROM
成绩表
GROUP BY
tid
HAVING
COUNT(sid) >= 2
case when 是标准的SQL语句。而decode只有oracle数据库才支持。