Misalkan saya memiliki tabel a (dengan kolom a1) dan b (dengan kolom b1 dan b2) dan saya melakukan gabungan luar kiri
SELECT *
FROM a LEFT OUTER JOIN b
ON a.a1 = b.b1
Kemudian b1 dan b2 akan menjadi NULL di mana nilai a1 tidak memiliki nilai yang cocok dengan b1.
Bisakah saya memberikan nilai default untuk b2, bukan NULL? Perhatikan bahwa Bersatu tidak akan bekerja di sini, karena saya tidak ingin nilai default untuk menimpa potensi NULLs di b2 di mana ada adalah nilai a1 pencocokan b1.
Yaitu, dengan a dan b sebagai
CREATE TABLE a (a1)
AS VALUES (1),
(2),
(3) ;
CREATE TABLE b (b1,b2)
AS VALUES (1, 10),
(3, null) ;
a1 b1 | b2
--- --------
1 1 | 10
2 3 | NULL
3
dan default untuk b2 dari, katakanlah, 100, saya ingin mendapatkan hasilnya
a1 | b1 | b2
---------------
1 | 1 | 10
2 | NULL | 100
3 | 3 | NULL
Dalam kasus sederhana ini saya bisa melakukannya "dengan tangan" dengan melihat apakah b1 NULL dalam output. Apakah itu pilihan terbaik secara umum, atau ada cara yang lebih standar dan lebih rapi?
sql
(yang berarti "SQL the query language". Tag itu tidak menunjukkan produk atau dialek DBMS tertentu). Bagian:[b2]=CASE WHEN ... END
adalah ekspresi SQL yang tidak valid (standar).