Menu
Coddy logo textTech

NULLに対するCOALESCE

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

COALESCENULL ではない最初の引数を返します:

COALESCE(nickname, first_name, 'Anonymous')

左から右に読み取り、最初の非 NULL 値で停止します。CASE を使わずに、クエリで代替値を指定する最もすっきりした方法です。

一般的な用途:

  • LEFT JOIN の結果で NULL の代わりに 0 を表示する:COALESCE(SUM(amount), 0)
  • 空でない最初のオプションフィールドを選択する:COALESCE(mobile, home, work)
challenge icon

チャレンジ

簡単

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

  • usersiddisplay_nameemail
  • ordersuser_idamount

各ユーザーにつき1行を、以下の内容で返してください:

  • id
  • labeldisplay_nameが設定されていればそれを、そうでなければemailを、それもなければ'unknown'を使用します
  • total_spent:ユーザーの注文のamountの合計。注文がないユーザーには0NULLではない)を表示してください

idの順に並べ替えてください。ヒント:usersからordersへのLEFT JOINCOALESCE(SUM(...), 0)を組み合わせると、該当する行がない場合にも対応できます。

REQUIRED OUTPUT FORMAT: [Your translated content here]

自分で試してみよう

SELECT u.id,
       -- COALESCEによるlabel
       -- COALESCE(SUM(...), 0)によるtotal_spent
FROM users u
LEFT JOIN orders o ON o.user_id = u.id
GROUP BY u.id
ORDER BY u.id
quiz icon腕試し

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

応用のすべてのレッスン

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