Menu
CoddyTech

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。

challenge icon

挑战

简单

可用的表和列:

  • matches: id、 shots、 goals

为每场比赛返回:

  • id
  • conversion: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
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

进阶内容中的所有课

自己练习: SQL 在线编辑器