sql >> Database >  >> RDS >> Sqlserver

Null-waarden vervangen door Unknown in Select-instructie in SQL Server - SQL Server / TSQL-zelfstudie, deel 111

Scenario:


U werkt als SQL Server-ontwikkelaar, u moet een query uitvoeren op de dbo.Customer-tabel en de Null-waarden in de kolom Naam vervangen door "Onbekende naam". Welke SQL-functies gebruikt u om de Null-waarde te vervangen door "Onbekende naam"?


Oplossing:

U kunt ISNULL- of COALESCE-functies gebruiken om Null te vervangen door een waarde die we leuk vinden. Laten we dbo.Customer-tabel maken en voorbeeldrecords invoegen met behulp van onderstaande instructies.

--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')
 
 
 
 Laten we de functies ISNULL of COALESCE gebruiken om Null te vervangen door "Onbekende naam".
Select Id,ISNULL(Name,'Unknown Name') AS NameByISNull,
COALESCE(Name,'Unknown Name') NamebyCoalesce,
Address From dbo.Customer
 
 
Null vervangen door waarden in SQL Server - TSQL-zelfstudie


 Zoals u kunt zien, hebben we ISNULL gebruikt en de Null vervangen door "Onbekende naam", maar het heeft "Onbekende Na" geretourneerd, het heeft niet de volledige "Onbekende naam" geretourneerd. De reden, het gegevenstype van een ISNULL-expressie is het gegevenstype van de eerste invoer (kolom Naam) die varchar (10) is, wat betekent dat het ons altijd 10 tekens zal retourneren.
Als u dergelijke situaties hebt, u kunt beter COALESCE gebruiken. Het gegevenstype van een COALESCE-expressie is het gegevenstype van het invoerargument met de hoogste prioriteit voor het gegevenstype. In ons geval is "Onbekende naam" 12 tekens en het koos ervoor om dat te gebruiken in plaats van het kolomgegevenstype Naam, dat is varchar(10).



  1. Wat is precies het verschil tussen primaire index en secundaire index?

  2. Is de OraOLEDB-provider in .NET onbetrouwbaar op CLOB-velden?

  3. Hoe een externe sleutel in SQL toe te voegen?

  4. Diepe duik in NoSQL:een complete lijst van NoSQL-databases