Menu
Coddy logo textTech

NULLIFとIIF

CoddyのSQLジャーニー「応用」セクションの一部。レッスン 4/27。

条件に関する便利なヘルパーがもう2つあります。どちらも小さくて便利です。

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 の2分岐のショートカットです。選択肢が二つの場合はこれを使い、分岐がさらに多い場合は CASE を使いましょう。

challenge icon

チャレンジ

簡単

利用可能なテーブルと列:

  • matchesidshotsgoals

各試合について、次を返してください:

  • id
  • conversiongoals * 1.0 / shots。ただし、shots0の場合はNULLNULLIFを使用)
  • verdictgoals > 0の場合は'win'、それ以外の場合は'no goals'IIFを使用)

idで並べ替えてください。

自分で試してみよう

SELECT id,
       -- NULLIFを使用した変換
       -- IIFを使用した判定
FROM matches
ORDER BY id
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

応用のすべてのレッスン

自分で練習してみよう: SQLプレイグラウンド