sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo sustituir una cadena si el registro es NULL en T-SQL

Puede usar COALESCE o ISNULL . El primero es estándar y devuelve el primer NOT NULL argumento (o NULL si todos los argumentos son NULL )

SELECT COALESCE(micv.value,'Pending') as value

ISNULL está restringida a solo 2 argumentos, pero es más eficiente en SQL Server si el primer valor que se prueba es costoso de evaluar (por ejemplo, una subconsulta).

Un posible "te pillé" con ISNULL a tener en cuenta es que devuelve el tipo de datos del primer parámetro, por lo que si la cadena que se sustituirá es más larga de lo que permitiría el tipo de datos de la columna, necesitará una conversión.

Por ejemplo

CREATE TABLE T(C VARCHAR(3) NULL);

INSERT T VALUES (NULL);

SELECT ISNULL(C,'Unknown')
FROM T

Devolvería Unk

Pero ISNULL(CAST(C as VARCHAR(7)),'Unknown') o COALESCE ambos funcionarían como se desea.