Menu
Coddy logo textTech

COALESCE dla wartości NULL

Część sekcji Poza podstawami ścieżki SQL w Coddy. Lekcja 3 z 27.

COALESCE zwraca pierwszy argument, który nie jest NULL:

COALESCE(nickname, first_name, 'Anonymous')

Odczytuje wartości od lewej do prawej i zatrzymuje się na pierwszej niebędącej wartością null. To najprostszy sposób na podanie wartości zapasowej w zapytaniu, bez potrzeby używania CASE.

Typowe zastosowania:

  • Wyświetl 0 zamiast NULL z LEFT JOIN: COALESCE(SUM(amount), 0)
  • Wybierz pierwsze niepuste pole opcjonalne: COALESCE(mobile, home, work)
challenge icon

Wyzwanie

Łatwy

Dostępne tabele i kolumny:

  • users: id, display_name, email
  • orders: user_id, amount

Zwróć jeden wiersz na użytkownika zawierający:

  • id
  • label: display_name, jeśli jest ustawione, w przeciwnym razie email, a jeśli nie, 'unknown'
  • total_spent: suma wartości amount zamówień użytkownika; dla użytkowników bez zamówień powinna być wyświetlana wartość 0 (nie NULL)

Sortuj według id. Podpowiedź: LEFT JOIN tabeli users z tabelą orders oraz COALESCE(SUM(...), 0) obsługują brakujące wiersze.

Spróbuj swoich sił

SELECT u.id,
       -- label za pomocą COALESCE
       -- total_spent za pomocą COALESCE(SUM(...), 0)
FROM users u
LEFT JOIN orders o ON o.user_id = u.id
GROUP BY u.id
ORDER BY u.id
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Poza podstawami

Poćwicz samodzielnie: Edytor online SQL