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

Como substituir valores nulos por desconhecidos na instrução Select no SQL Server - SQL Server / TSQL Tutorial Part 111

Cenário:


Você está trabalhando como desenvolvedor SQL Server, você precisa consultar a tabela dbo.Customer e substituir os valores Null na coluna Name para "Unknown Name". Quais funções SQL você usará para substituir o valor Nulo por "Nome desconhecido"?


Solução:

Você pode usar as funções ISNULL ou COALESCE para substituir Null pelo valor que gostamos. Vamos criar a tabela dbo.Customer e inserir registros de amostra usando as instruções abaixo.

--Create dbo.Customer tableCreate table dbo.Customer(Id int,Name VARCHAR(10),Address VARCHAR( 100))--Inserir registros em dbo.Customer tableInsert into dbo.CustomerValues(1,'Aamir','XyZ Address'),(2,'Raza',Null),(3,null,'abc address') 
 
 
 
 Vamos usar as funções ISNULL ou COALESCE para substituir Null por "Unknown Name".
Selecione Id,ISNULL(Name,'Unknown Name') AS NameByISNull,COALESCE(Name,'Unknown Name') NamebyCoalesce,Address From dbo.Cliente
 
 
Como substituir Nulo por Valores no SQL Server - Tutorial TSQL


 Como você pode ver que usamos ISNULL e substituímos o Null por "Unknown Name" mas ele retornou "Unknown Na", não retornou "Unknown Name" completo. O motivo, o tipo de dados de uma expressão ISNULL é o tipo de dados da primeira entrada ( coluna Name) que é varchar(10), o que significa que sempre nos retornará 10 caracteres.
Se você tiver situações como essa, é melhor usar COALESCE. O tipo de dados de uma expressão COALESCE é o tipo de dados do argumento de entrada com a precedência de tipo de dados mais alta. No nosso caso, "Nome desconhecido" tem 12 caracteres e optou por usar isso em vez do tipo de dados da coluna Nome, que é varchar(10).