Supongamos que tengo tablas a (con la columna a1) yb (con las columnas b1 y b2) y realizo una unión externa izquierda
SELECT *
FROM a LEFT OUTER JOIN b
ON a.a1 = b.b1
Entonces b1 y b2 serán NULL donde un valor de a1 no tiene un valor coincidente de b1.
¿Puedo proporcionar un valor predeterminado para b2, en lugar de NULL? Nota que se unen no funcionará aquí, porque no quiero que el valor por defecto para anular los nulos potenciales en b2 donde no es un valor de a1 b1 juego.
Es decir, con a y b 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
y un valor predeterminado para b2 de, digamos, 100, quiero obtener el resultado
a1 | b1 | b2
---------------
1 | 1 | 10
2 | NULL | 100
3 | 3 | NULL
En este caso simple, podría hacerlo "a mano" mirando si b1 es NULL en la salida. ¿Es esa la mejor opción en general, o hay una forma más estándar y ordenada?
sql
(lo que significa "SQL, el lenguaje de consulta". Esa etiqueta no denota ningún producto o dialecto DBMS específico). La parte:[b2]=CASE WHEN ... END
es una expresión SQL no válida (estándar).