NULLIF 和 IIF
本课属于 Coddy SQL 学习旅程的“进阶内容”单元。第 4 课,共 27 课。
还有两个条件辅助函数,都很小巧实用。
NULLIF(a, b) 在 a = b 时返回 NULL,否则返回 a。它的经典用法是防止除以零:
SELECT total / NULLIF(count, 0) AS average
FROM stats如果 count 为零,我们会得到 NULL,而不是错误。
IIF(cond, a, b) 是 CASE WHEN cond THEN a ELSE b END 的双分支简写。选择只有两种时使用它;分支更多时使用 CASE。
挑战
简单可用的表和列:
matches:id、shots、goals
为每场比赛返回:
idconversion:goals * 1.0 / shots,但当shots为0时返回NULL(使用NULLIF)verdict:当goals > 0时返回'win',否则返回'no goals'(使用IIF)
按 id 排序。
亲手试试
SELECT id,
-- 使用 NULLIF 进行转换
-- 使用 IIF 得出结果
FROM matches
ORDER BY id
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
进阶内容中的所有课
自己练习: SQL 在线编辑器