Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да замените нулеви стойности с неизвестно в изявление за избор в SQL Server - SQL Server / TSQL урок, част 111

Сценарий:


Вие работите като разработчик на SQL Server, трябва да направите заявка за таблицата dbo.Customer и да замените нулевите стойности в колоната Име на "Неизвестно име". Кои SQL функции ще използвате, за да замените стойността Null с "Unknown Name"?


Решение:

Можете да използвате функциите ISNULL или COALESCE, за да замените Null със стойност, която харесваме. Нека създадем таблица dbo.Customer и вмъкнем примерни записи, като използваме по-долу изрази.

--Създаване на dbo.Customer tableCreate table dbo.Customer(Id int,Name VARCHAR(10),Address VARCHAR( 100))--Вмъкнете записи в dbo.Customer tableInsert into dbo.CustomerValues(1,'Aamir','XyZ Address'),(2,'Raza',Null),(3,null,'abc address') 
 
 
 
 Нека използваме функции ISNULL или COALESCE, за да заменим Null с "Unknown Name".
Изберете Id,ISNULL(Име,'Неизвестно име') КАТО NameByISNull,COALESCE(Име,'Неизвестно име') NamebyCoalesce,Address From dbo.Клиент
 
 
Как да замените Null със стойности в SQL Server - TSQL урок


 Както можете да видите, че използвахме ISNULL и заменихме Null с „Unknown Name“, но той върна „Unknown Na“, той не върна пълно „Unknown Name“. Причината, типът данни на израза ISNULL е типът данни на първия вход ( колона Име), който е varchar(10), което означава, че винаги ще ни връща 10 знака.
Ако имате ситуации като тази, по-добре използвайте COALESCE. Типът данни на израз COALESCE е типът данни на входния аргумент с най-висок приоритет на типа данни. В нашия случай „Unknow Name“ е 12 знака и избра да използва този вместо тип данни в колоната Name, който е varchar(10).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. BULK INSERT с колона за идентичност (автоматично увеличаване).

  2. Как NULLIF() работи в SQL Server

  3. Ефективно преобразувайте редове в колони в sql сървър

  4. Как се прави GROUP BY, чувствителен към малки и големи букви?

  5. Защо използването на знак за долна черта във филтър LIKE ми дава всички резултати?