Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como substituir uma string se o registro for NULL em T-SQL


Você pode usar COALESCE ou ISNULL . O primeiro é padrão e retorna o primeiro NOT NULL argumento (ou NULL se todos os argumentos forem NULL )
SELECT COALESCE(micv.value,'Pending') as value

ISNULL é restrito a apenas 2 argumentos, mas é mais eficiente no SQL Server se o primeiro valor a ser testado for caro para avaliar (por exemplo, uma subconsulta).

Uma possível "pegadinha" com ISNULL estar ciente é que ele retorna o tipo de dados do primeiro parâmetro, portanto, se a string a ser substituída for maior do que o tipo de dados da coluna permitiria, você precisará de uma conversão.

Por exemplo.
CREATE TABLE T(C VARCHAR(3) NULL);

INSERT T VALUES (NULL);

SELECT ISNULL(C,'Unknown')
FROM T

Retornaria Unk

Mas ISNULL(CAST(C as VARCHAR(7)),'Unknown') ou COALESCE ambos funcionariam como desejado.