sql >> Databáze >  >> RDS >> Sqlserver

Jak nahradit hodnoty Null hodnotou Neznámý v příkazu Select v SQL Server - SQL Server / Kurz TSQL, část 111

Scénář:


Pracujete jako vývojář SQL Serveru, musíte zadat dotaz na tabulku dbo.Customer a nahradit hodnoty Null ve sloupci Name na "Neznámé jméno". Které funkce SQL použijete k nahrazení hodnoty Null za "Neznámý název"?


Řešení:

Můžete použít funkce ISNULL nebo COALESCE k nahrazení Null hodnotou, která se nám líbí. Pojďme vytvořit tabulku dbo.Customer a vložit ukázkové záznamy pomocí níže uvedených příkazů.

 --Create dbo.Customer tableCreate table dbo.Customer(Id int,Name VARCHAR(10),Address VARCHAR( 100))--Vložte záznamy do dbo.Customer tableInsert do dbo.CustomerValues(1,'Aamir','XyZ Address'),(2,'Raza',Null),(3,null,'abc address') 
 
 
 
 Použijme funkce ISNULL nebo COALESCE k nahrazení Null "Neznámým jménem".
Vyberte Id,ISNULL(Název,'Neznámé jméno') AS NameByISNull,COALESCE(Name,'Unknown Name') NamebyCoalesce,Address From dbo.Customer
 
 
Jak nahradit hodnotu Null hodnotami v SQL Server – výukový program TSQL


 Jak můžete vidět, použili jsme ISNULL a nahradili Null za „Neznámé jméno“, ale vrátilo to „Unknown Na“, nevrátilo úplné „Neznámé jméno“. Důvodem, datovým typem výrazu ISNULL je datový typ prvního vstupu (sloupec Název), který je varchar(10), to znamená, že nám vždy vrátí 10 znaků.
Pokud máte takové situace, raději použijte COALESCE. Datový typ výrazu COALESCE je datový typ vstupního argumentu s nejvyšší prioritou datového typu. V našem případě je "Neznámý název" 12 znaků a rozhodl se použít tento datový typ namísto sloupce Název, který je varchar(10).



  1. Tablix:Nefunguje opakování řádků záhlaví na každé stránce – Report Builder 3.0

  2. Hvězdné schéma

  3. Jak mohu urychlit row_number v Oracle?

  4. PostgreSQL Streaming Replication vs Logická replikace