sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man ersätter null-värden med okänt i Select-sats i SQL Server - SQL Server / TSQL självstudie del 111

Scenario:


Du arbetar som SQL Server-utvecklare, du måste fråga dbo.Customer-tabellen och ersätta Null-värden i kolumnen Namn till "Okänt namn". Vilka SQL-funktioner kommer du att använda för att ersätta Null-värdet med "Okänt namn"?


Lösning:

Du kan använda funktionerna ISNULL eller COALESCE för att ersätta Null med värde som vi gillar. Låt oss skapa dbo.Customer-tabell och infoga exempelposter genom att använda nedanstående satser.

--Create dbo.Customer table
Create table dbo.Customer(
Id int,
Name VARCHAR(10),
Address VARCHAR(100))

--Insert records in dbo.Customer table
Insert into dbo.Customer
Values(1,'Aamir','XyZ Address')
,(2,'Raza',Null)
,(3,null,'abc address')
 
 
 
 Låt oss använda funktionerna ISNULL eller COALESCE för att ersätta Null med "Okänt namn".
Select Id,ISNULL(Name,'Unknown Name') AS NameByISNull,
COALESCE(Name,'Unknown Name') NamebyCoalesce,
Address From dbo.Customer
 
 
Hur man ersätter Null med värden i SQL Server - TSQL-handledning


 Som du kan se att vi använde ISNULL och ersatte null med "Okänt namn" men det returnerade "Okänt Na", det returnerade inte fullständigt "Okänt namn". Anledningen, datatypen för ett ISNULL-uttryck är datatypen för den första ingången ( Name kolumn) som är varchar(10), vilket betyder att den alltid kommer att returnera oss 10 tecken.
Om du har situationer som denna, det är bättre att använda COALESCE. Datatypen för ett COALESCE-uttryck är datatypen för inmatningsargumentet med högst datatypsföreträde. I vårt fall är "Unknow Name" 12 tecken och den valde att använda den istället för Name kolumndatatypen som är varchar(10).



  1. Hur använder jag Postgres JSONB datatype med JPA?

  2. Hur testar jag i WiX om det finns en registernyckel (inte värde) för Oracle ODP.Net

  3. Dela anslutning till postgres db över processer i Python

  4. enkel fast tabell med flera kolumner kontra flexibla abstrakta tabeller