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分岐のショートカットです。選択肢が2つの場合はこれを使用し、分岐がより多い場合は CASE を使用してください。

challenge icon

チャレンジ

簡単

利用可能なテーブルとカラム:

  • <strong>matches</strong>: <strong>id</strong>, <strong>shots</strong>, <strong>goals</strong>

各試合について以下を返してください:

  • id
  • conversion: goals * 1.0 / shots。ただし、shots0 の場合は NULL とします(NULLIF を使用してください)
  • verdict: goals > 0 の場合は 'win'、それ以外の場合は 'no goals'IIF を使用してください)

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

チートシート

NULLIF(a, b)a = b のときに NULL を返し、それ以外の場合は a を返します。ゼロ除算を避けるのに便利です:

SELECT total / NULLIF(count, 0) AS average
FROM stats

IIF(cond, a, b) は 2 分岐の CASE のショートカットです:

SELECT IIF(goals > 0, 'win', 'no goals') AS verdict
FROM matches

自分で試してみよう

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

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

応用のすべてのレッスン