在SQL中,条件判断函数IF用于根据指定的条件返回不同的值。
IF(condition, value_if_true, value_if_false)
假设有如下名为studensts的表,包含id、name和score字段:
CREATE TABLE `students` ( `id` int(11) NOT NULL, `name` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, `score` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
我们想根据学生的分数判断是否及格,并返回相应的结果。
SELECT id, name, IF(score >= 60, '及格', '不及格') AS result FROM students;
以上查询会返回一个结果集,其中result列将显示每个学生的及格或不及格的结果。
在SQL中,条件判断函数CASE WHEN用于在查询中根据特定条件返回不同的结果。
CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE resultN END
例如,下面的示例查询根据学生成绩的不同等级返回不同的提示信息:
SELECT name, CASE WHEN score >= 90 THEN '优秀' WHEN score >= 80 THEN '良好' WHEN score >= 70 THEN '中等' WHEN score >= 60 THEN '及格' ELSE '不及格' END AS grade FROM students;
以上查询会根据学生的成绩等级返回相应的提示信息,并将结果命名为grade列。