sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan erstattes null-værdier med ukendt i Select Statement i SQL Server - SQL Server / TSQL Tutorial Del 111

Scenarie:


Du arbejder som SQL Server-udvikler, du skal forespørge på dbo.Kundetabel og erstatte Null-værdier i kolonnen Navn til "Ukendt navn". Hvilke SQL-funktioner vil du bruge til at erstatte Null-værdi med "Ukendt navn"?


Løsning:

Du kan bruge funktionerne ISNULL eller COALESCE til at erstatte Null med en værdi, vi kan lide. Lad os oprette dbo.Customer-tabel og indsætte eksempelposter ved at bruge nedenstående udsagn.

--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')
 
 
 
 Lad os bruge funktionerne ISNULL eller COALESCE til at erstatte Null med "Ukendt navn".
Select Id,ISNULL(Name,'Unknown Name') AS NameByISNull,
COALESCE(Name,'Unknown Name') NamebyCoalesce,
Address From dbo.Customer
 
 
Sådan erstattes Null med værdier i SQL Server - TSQL-vejledning


 Som du kan se, brugte vi ISNULL og erstattede Null med "Ukendt navn", men det returnerede "Ukendt Na", det returnerede ikke fuldstændigt "Ukendt navn". Årsagen, datatypen for et ISNULL-udtryk er datatypen for det første input ( Navn-kolonnen), som er varchar(10), hvilket betyder, at det altid vil returnere os 10 tegn.
Hvis du har situationer som denne, du må hellere bruge COALESCE. Datatypen for et COALESCE-udtryk er datatypen for inputargumentet med den højeste datatypeprioritet. I vores tilfælde er "Ukendt navn" 12 tegn, og den valgte at bruge den i stedet for Name kolonne datatype, som er varchar(10).



  1. Indstil tegnsættet og samlingen af ​​en database i MariaDB

  2. Kald lagret procedure med tabelværdiparameter fra java

  3. SQL-forespørgsel for at slette tabel i MySQL

  4. Opdater tællekolonne fra data i en anden tabel