Tablo a (sütun a1 ile) ve b (sütun b1 ve b2 ile) ve sol dış birleşim yaptığımı varsayalım
SELECT *
FROM a LEFT OUTER JOIN b
ON a.a1 = b.b1
Daha sonra b1 ve b2 NULL olur, burada a1 değeri b1 ile eşleşen bir değere sahip olmaz.
B2 için NULL yerine varsayılan bir değer sağlayabilir miyim? Çünkü COALESCE, burada çalışmaz Not yok orada burada b2 potansiyel boş değerlere geçersiz kılmak varsayılan değeri istiyoruz olan b1 eşleştirme a1 değeri olabilir.
Yani, a ve b ile
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
ve b2 için bir varsayılan, örneğin, 100, sonuç almak istiyorum
a1 | b1 | b2
---------------
1 | 1 | 10
2 | NULL | 100
3 | 3 | NULL
Bu basit durumda çıktıda b1 NULL olup olmadığına bakarak "elle" yapabilirim. Genel olarak en iyi seçenek mi yoksa daha standart ve daha düzgün bir yol var mı?
sql
(yani "SQL sorgu dili" anlamına gelir. Bu etiket herhangi bir DBMS ürününü veya lehçesini göstermez). Bölüm:[b2]=CASE WHEN ... END
geçersiz (standart) bir SQL ifadesidir.