COALESCE untuk NULL
Termasuk bagian Lebih dari Dasar-Dasar dalam perjalanan SQL di Coddy. Pelajaran 3 dari 27.
COALESCE mengembalikan argumen pertama yang bukan NULL:
COALESCE(nickname, first_name, 'Anonymous')Membaca dari kiri ke kanan dan berhenti pada nilai pertama yang bukan null. Ini cara paling sederhana untuk memberikan nilai fallback dalam query, tanpa perlu CASE.
Penggunaan umum:
- Tampilkan
0alih-alihNULLdariLEFT JOIN:COALESCE(SUM(amount), 0) - Pilih kolom opsional pertama yang tidak kosong:
COALESCE(mobile, home, work)
Tantangan
MudahTabel dan kolom yang tersedia:
users:id,display_name,orders:user_id,amount
Kembalikan satu baris untuk setiap pengguna dengan:
idlabel:display_namejika tersedia, jika tidakemail, dan jika tidak'unknown'total_spent: jumlahamountpesanan pengguna; pengguna yang tidak memiliki pesanan harus menampilkan0(bukanNULL)
Urutkan berdasarkan id. Petunjuk: LEFT JOIN dari users ke orders ditambah COALESCE(SUM(...), 0) menangani baris yang tidak ada.
Coba sendiri
SELECT u.id,
-- label melalui COALESCE
-- total_spent melalui COALESCE(SUM(...), 0)
FROM users u
LEFT JOIN orders o ON o.user_id = u.id
GROUP BY u.id
ORDER BY u.id
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Lebih dari Dasar-Dasar
Latihan sendiri: Playground SQL