Suponha que eu tenha as tabelas a (com coluna a1) eb (com as colunas b1 e b2) e execute uma junção externa esquerda
SELECT *
FROM a LEFT OUTER JOIN b
ON a.a1 = b.b1
Em seguida, b1 e b2 serão NULL onde um valor de a1 não tem valor correspondente de b1.
Posso fornecer um valor padrão para b2, em vez de NULL? Note-se que COALESCE não vai funcionar aqui, porque eu não quero que o valor padrão para substituir potenciais nulos em b2 onde não é um valor de a1 correspondência b1.
Ou seja, com aeb como
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
e um padrão para b2 de, digamos, 100, quero obter o resultado
a1 | b1 | b2
---------------
1 | 1 | 10
2 | NULL | 100
3 | 3 | NULL
Nesse caso simples, eu poderia fazê-lo "manualmente" examinando se b1 é NULL na saída. Essa é a melhor opção em geral, ou existe uma maneira mais padrão e organizada?
sql
(o que significa "SQL the query language". Essa tag não indica nenhum produto ou dialeto específico do DBMS). A parte:[b2]=CASE WHEN ... END
é uma expressão SQL inválida (padrão).