Sql isnull примеры: Функция ISNULL (Transact-SQL) — SQL Server

Содержание

Функция ISNULL (Transact-SQL) — SQL Server


  • Статья



Применимо к: SQL Server Azure SQL DatabaseУправляемый экземпляр SQL AzureAzure Synapse Analytics AnalyticsPlatform System (PDW)Конечная точка SQL в хранилище Microsoft Fabricв Microsoft Fabric

Заменяет значение NULL указанным замещающим значением.

Соглашения о синтаксисе Transact-SQL

Синтаксис

ISNULL ( check_expression , replacement_value )  

Примечание

Ссылки на описание синтаксиса Transact-SQL для SQL Server 2014 и более ранних версий, см. в статье Документация по предыдущим версиям.

Аргументы

check_expression
Выражение, которое необходимо проверить на равенство значению NULL. Аргумент check_expression может быть любого типа.

replacement_value
Выражение, возвращаемое, если check_expression имеет значение NULL. Аргумент replacement_value должен иметь тип, который может быть неявно преобразован в тип check_expression.

Типы возвращаемых данных

Возвращает тип, совпадающий с типом выражения check_expression. Если в аргументе check_expression предоставлено литеральное значение NULL, возвращает тип данных replacement_value. Если в аргументе check_expression предоставлено литеральное значение NULL, а аргумент replacement_value не задан, возвращает int.

Возвращается значение check_expression, если это выражение не равно NULL. В противном случае возвращается значение replacement_value. Если типы являются разными, то тип replacement_value неявно преобразуется в тип check_expression. Значение replacement_value может усекаться, если значение replacement_value длиннее, чем check_expression.

Примечание

Для возврата первого значения, отличного от NULL, используйте функцию COALESCE (Transact-SQL).

Примеры

A. Использование функции ISNULL с функцией AVG

Следующий пример демонстрирует расчет среднего значения веса всех продуктов. Все записи со значением NULL в столбце 50 таблицы Weight заменяются значением Product.

USE AdventureWorks2012;  
GO  
SELECT AVG(ISNULL(Weight, 50))  
FROM Production.Product;  
GO  

Результирующий набор:

-------------------------- 
59.79  
 
(1 row(s) affected)

Б. Использование функции ISNULL

Следующий пример производит выборку описания, процента скидки, минимального и максимального количества для всех специальных предложений из базы AdventureWorks2012. Если максимальное количество для отдельного специального предложения равно NULL, отображаемое значение MaxQty в результирующем наборе заменяется на 0.00.

USE AdventureWorks2012;  
GO  
SELECT Description, DiscountPct, MinQty, ISNULL(MaxQty, 0.00) AS 'Max Quantity'  
FROM Sales.SpecialOffer;  
GO  

Результирующий набор:

DescriptionDiscountPctMinQtyМаксимальное количество
Без скидки0,0000
Оптовая скидка0,021114
Оптовая скидка0,05154
Оптовая скидка0,10250
Оптовая скидка0,15410
Оптовая скидка0,20610
Mountain-100 Cl0,3500
Sport Helmet Di0,1000
Road-650 Overst0,3000
Mountain Tire S0,5000
Sport Helmet Di0,1500
LL Road Frame S0,3500
Touring-3000 Pr0,1500
Touring-1000 Pr0,2000
Half-Price Peda0,5000
Mountain-500 Si0,4000

(16 row(s) affected)

В.

Проверка значений NULL в предложении WHERE

Не используйте для поиска значений NULL выражение ISNULL, вместо него следует использовать выражение IS NULL. В следующем примере выполняется поиск всех продуктов, имеющих значение NULL в столбце веса. Заметьте, что между словами IS и NULL стоит пробел.

USE AdventureWorks2012;  
GO  
SELECT Name, Weight  
FROM Production.Product  
WHERE Weight IS NULL;  
GO  

Примеры: Azure Synapse Analytics и Система платформы аналитики (PDW)

Г. Использование функции ISNULL с функцией AVG

В приведенном ниже примере рассчитывается среднее значение веса всех продуктов в образце таблицы. Все записи со значением NULL в столбце 50 таблицы Weight заменяются значением Product.

-- Uses AdventureWorks  
  
SELECT AVG(ISNULL(Weight, 50))  
FROM dbo.DimProduct;  

Результирующий набор:

--------------------------   
52.88   

Д.

Использование функции ISNULL

В приведенном ниже примере функция ISNULL используется для поиска значений NULL в столбце MinPaymentAmount и отображения значения 0.00 для соответствующих строк.

-- Uses AdventureWorks  
  
SELECT ResellerName,   
       ISNULL(MinPaymentAmount,0) AS MinimumPayment  
FROM dbo.DimReseller  
ORDER BY ResellerName;  
  

Здесь приводится частичный результирующий набор.

ResellerNameMinimumPayment
A Bicycle Association0,0000
A Bike Store0,0000
A Cycle Shop0,0000
A Great Bicycle Company0,0000
A Typical Bike Shop200,0000
Acceptable Sales & Service0,0000

Е. Использование функции IS NULL для проверки на значение NULL в предложении WHERE

В приведенном ниже примере выполняется поиск всех продуктов, имеющих значение NULL в столбце Weight. Заметьте, что между словами IS и NULL стоит пробел.

-- Uses AdventureWorks  
  
SELECT EnglishProductName, Weight  
FROM dbo.DimProduct  
WHERE Weight IS NULL;  

См. также:

Выражения (Transact-SQL)
IS NULL (Transact-SQL)
Системные функции (Transact-SQL)
Предложение WHERE (Transact-SQL)
COALESCE (Transact-SQL)

деление на 0 без ошибки

Время прочтения: 4 мин.

В процессе работы c данными в SQL Server, мы столкнулись с такой ситуацией. Одним из промежуточных шагов в нашей задаче было выполнение простого арифметического действия, из данных в виде целых чисел, загружаемых в таблицу SQL, значения которых   участвовали в делении. В какой-то момент времени выполнение всего кода могло быть прервано сообщением об ошибке из-за того, что знаменатель принимал значение 0. Как этого избежать подобной ситуации, я расскажу в этой статье.

Обычно при делении не возникает проблем, и мы получаем соотношение двух величин, если знаменатель не равен нулю:

declare @vol_1 int;
declare @vol_2 int;
set @vol_1 = 10;
set @vol_2 = 5;
select @vol_1/@vol_2 ratio_vol;

Соотношение значений вычисляется корректно:

При значении @vol_2 = 0 получаем сообщение об ошибке:

declare @vol_1 int;
declare @vol_2 int;
set @vol_1 = 10;
set @vol_2 = 0;
select @vol_1/@vol_2 ratio_vol;

Для того, чтобы ошибка не возникала при выполнении запроса предлагается предусмотреть механизм, позволяющий справляться с условием, когда значение @vol_2 станет равным нулю

1. Применение функции NULLIF.

Синтаксис NULLIF следующий:

NULLIF(expr1, expr2)

При равенстве значений двух аргументов, возвращается значение NULL.

Например:

select NULLIF (55, 55) result;

Результат запроса:

Если значения аргументов не равны, возвращается значение первого аргумента (expr1).

select NULLIF (12, 55) result;

Изменим этот запрос, добавив в него NULLIF, для обхода ошибки деления на ноль.

Логика использования функции NULLIF для задачи деления на ноль следующая:

  • используем в знаменателе функцию NULLIF с нулевым значением ее второго аргумента
  • если значение первого аргумента функции NULLIF также равно нулю, то возвращается значение NULL, и тогда в SQL Server, если мы разделим число на значение NULL, на выходе получим NULL.
  • если значение первого аргумента не равно нулю, возвращается значение первого аргумента функции NULLIF, и деление выполняется как стандартная операция деления.
declare @vol_1 int;
declare @vol_2 int;
set @vol_1 = 10;
set @vol_2 = 0;
select @vol_1/NULLIF (@vol_2, 0) ratio_vol;

Ниже, результат работы такого кода (в знаменателе – значение NULL):

Добавим в код функцию ISNULL, для того, чтобы вместо значения NULL в выводе результата вычисления получать 0.

Эта функция заменяет NULL значение в expr1 и возвращает значение expr2 в качестве вывода.

Логика запроса с функциями ISNULL и NULLIF такая:

  • первый аргумент ((@vol_1/ NULLIF (@vol_2,0)) вернет значение NULL;
  • для функции ISNULL указываем нулевое значение второго аргумента;
  • так как первый аргумент — NULL, то вывод всего запроса равен нулю, т.е. значению второго аргумента.

Пример кода с функциями ISNULL и NULLIF:

declare @vol_1 int;
declare @vol_2 int;
set @vol_1 = 10;
set @vol_2 = 0;
select ISNULL (@vol_1/NULLIF (@vol_2, 0),0) ratio_vol;

Вывод результата успешного выполнения запроса:

2. Использование оператора CASE.

Посмотрим, как использовать для нашей задачи оператор CASE для возврата значений на основе определенных условий.

Оператор CASE проверит значение параметра @vol_2:

  • если значение @vol_2 равно нулю, возвращается значение NULL;
  • если это условие не выполняется, то производится арифметическая операция деления (@vol_1/@vol_2) и возвращается ее результат.
declare @vol_1 int;
declare @vol_2 int;
set @vol_1 = 10;
set @vol_2 = 0;
select CASE
	    when @vol_2 = 0
	    then NULL
	    else @vol_1/@vol_2
       end as ratio_vol;

Успешный результат запроса:

Применяя рассмотренные методы, позволяющие избежать ошибки деления на ноль в SQL Server, можно быть уверенным в том, что этот специфический, с точки зрения арифметики, код, являющийся частью большей задачи, не даст сбой в результате ее решения.

ISNULL (Transact-SQL) — SQL Server

  • Статья

Применяется к: SQL Server Azure SQL База данных Azure SQL Управляемый экземпляр Azure Synapse Analytics Analytics Platform System (PDW) Конечная точка SQL в Microsoft Fabric Warehouse в Microsoft Fabric

Заменяет NULL указанным замещающим значением.

Соглашения о синтаксисе Transact-SQL

Синтаксис

 ISNULL (выражение_проверки, значение_замены)
 

Примечание

Для просмотра синтаксиса Transact-SQL для SQL Server 2014 и более ранних версий см. документацию по предыдущим версиям.

Аргументы

check_expression
Проверяется ли выражение на NULL. check_expression может быть любого типа.

replace_value
Выражение, которое должно быть возвращено, если check_expression имеет значение NULL. replace_value должен иметь тип, который неявно преобразуется в тип check_expression .

Типы возвращаемых значений

Возвращает тот же тип, что и check_expression . Если литерал NULL указан как check_expression , возвращает тип данных replace_value . Если литерал NULL указан как check_expression и не указано replace_value , возвращается в .

Значение check_expression возвращается, если оно не равно NULL; в противном случае возвращается replace_value после неявного преобразования в тип check_expression , если типы различаются. replace_value может быть усечен, если replace_value длиннее, чем check_expression .

Примечание

Используйте COALESCE (Transact-SQL), чтобы вернуть первое ненулевое значение.

Примеры

A. Использование ISNULL с AVG

В следующем примере определяется среднее значение веса всех продуктов. Он заменяет значение 50 для всех записей NULL в столбце Weight таблицы Product .

 ИСПОЛЬЗОВАТЬ AdventureWorks2012;
ИДТИ
ВЫБЕРИТЕ СРЕДНЕЕ (ISNULL (вес, 50))
ОТ Производство. Продукт;
ИДТИ
 

Вот набор результатов.

 --------------------------
59,79
 
(затронуты 1 ряд)
 

B. Использование ISNULL

В следующем примере выбираются описание, процент скидки, минимальное количество и максимальное количество для всех специальных предложений в AdventureWorks2012 . Если максимальное количество для определенного специального предложения равно NULL, MaxQty , показанное в наборе результатов, равно 0,00 .

 ИСПОЛЬЗОВАТЬ AdventureWorks2012;
ИДТИ
ВЫБЕРИТЕ Описание, DiscountPct, MinQty, ISNULL (MaxQty, 0,00) AS 'Максимальное количество'
ОТ Продажи.Специальное Предложение;
ИДТИ
 

Вот набор результатов.

Описание СкидкаPct Минимальное количество Максимальное количество
Без скидки 0,00 0 0
Скидка за объем 0,02 11 14
Скидка за объем 0,05 15 4
Скидка за объем 0,10 25 0
Скидка за объем 0,15 41 0
Скидка за объем 0,20 61 0
Гора-100 Кл 0,35 0 0
Спортивный шлем Di 0,10 0 0
Дорога-650 Оверст 0,30 0 0
Горная шина S 0,50 0 0
Спортивный шлем Di 0,15 0 0
Дорожная рама LL S 0,35 0 0
Универсал-3000 Пр 0,15 0 0
Универсал-1000 Пр 0,20 0 0
Педа за полцены 0,50 0 0
Гора-500 Si 0,40 0 0

(16 затронутых строк)

C.

Проверка на NULL в предложении WHERE

Не используйте ISNULL для поиска значений NULL. Вместо этого используйте IS NULL. В следующем примере выполняется поиск всех продуктов, которые имеют NULL в столбце веса. Обратите внимание на пробел между IS и NULL .

 ИСПОЛЬЗОВАТЬ AdventureWorks2012;
ИДТИ
ВЫБЕРИТЕ Имя, Вес
ОТ Производство.Продукт
ГДЕ Вес НУЛЬ;
ИДТИ
 

Примеры: Azure Synapse Analytics and Analytics Platform System (PDW)

D. Использование ISNULL с AVG

В следующем примере выполняется поиск среднего веса всех продуктов в образце таблицы. Он заменяет значение 50 для всех записей NULL в столбце Weight таблицы Product .

 -- Использует AdventureWorks
  
ВЫБЕРИТЕ СРЕДНЕЕ (ISNULL (вес, 50))
ОТ dbo.DimProduct;
 

Вот набор результатов.

 --------------------------
52,88
 

E. Использование ISNULL

В следующем примере ISNULL используется для проверки значений NULL в столбце MinPaymentAmount и отображения значения 0,00 для этих строк.

 -- Использует AdventureWorks
  
ВЫБЕРИТЕ имя реселлера,
       ISNULL(MinPaymentAmount,0) AS Минимальный платеж
ОТ dbo.DimReseller
ЗАКАЗАТЬ ПО ResellerName;
  
 

Вот неполный набор результатов.

Имя торгового посредника Минимальный платеж
Ассоциация велосипедистов 0,0000
Магазин велосипедов 0,0000
Магазин велосипедов 0,0000
Великая велосипедная компания 0,0000
Типичный магазин велосипедов 200.0000
Приемлемые продажи и обслуживание 0,0000

F. Использование IS NULL для проверки на NULL в предложении WHERE

В следующем примере выполняется поиск всех продуктов, имеющих NULL в столбце Weight . Обратите внимание на пробел между IS и NULL .

 -- Использует AdventureWorks
  
ВЫБЕРИТЕ английскийProductName, Weight
ОТ dbo.DimProduct
ГДЕ Вес НУЛЬ;
 

См. также

Выражения (Transact-SQL)
IS NULL (Transact-SQL)
Системные функции (Transact-SQL)
WHERE (Transact-SQL)
COALESCE (Transact-SQL)

Объяснение функции SQL ISNULL [Easy Примеры]

Содержание

Реклама

Обзор функции SQL ISNULL

SQL ISNULL — это функция, которая используется для проверки или замены нулевого значения указанного столбца или выражения, которое является первым параметром функции, если оно равно null чем функция вернет значение второго параметра как альтернативное или замененное значение, и если значение первого параметра не равно нулю, функция вернет то же самое.

SQL ISNULL — это расширенная функция SQL, которая принимает два параметра: первый — это выражение или имя столбца, а второй — значение, которое возвращается, если выражение или столбец содержат значение NULL

 

Что такое значения NULL и функции NULL в SQL?

Нулевые значения отсутствующих данных в таблицах SQL похожи на заполнители в базе данных, где данные недоступны, значение NULL не является частью какого-либо типа данных SQL, столбец с любым типом данных может иметь значение NULL.

ТАКЖЕ ПРОЧИТАЙТЕ: Начало работы с SQL — подробное объяснение

Нулевые функции необходимы для выполнения операций с нулевыми значениями, хранящимися в базе данных. Мы можем применять функции к значениям NULL, чтобы проверить, является ли значение нулевым или нет, или выполнить над ним какую-либо операцию.

Функция Описание
ЕСНУЛЬ() Используется для проверки значения NULL в первом аргументе и замены его значением второго аргумента
IFNULL () Возвращает значение первого аргумента, если оно равно NULL, в противном случае возвращает второе значение
ОБЪЕДИНЕНИЕ() Возвращает первое не NULL значение из списка аргументов
НВЛ() используется для замены значения NULL желаемым значением, заданным пользователем

 

Синтаксис SQL ISNULL

 ISNULL (выражение_проверки | имя_столбца , значение) 
  • выражение_проверки | имя_столбца: Указано выражение или имя столбца таблицы, которое должно быть проверено на NULL или нет
  • значение : указанное значение, которое должно быть возвращено как замещающее или альтернативное значение, если выражение имеет значение NULL

 

Тип возвращаемого значения SQL ISNULL

Возвращает тот же тип, что и check_expression . Если литерал NULL указан как check_expression , возвращает тип данных значения . Если литерал NULL указан как check_expression , а значение не указано, возвращает целое число.

 

Функция SQL ISNULL Примеры

Пример простой оценки строки

 SELECT ISNULL(NULL, 'Hello') AS checkNULL 

В приведенном выше запросе мы использовали функцию SQL ISNULL для проверки того, что первое выражение аргумента равно NULL или нет, оно начинает эволюцию с первого аргумента, который равен NULL, поэтому он проверяет второй аргумент, который является строкой «Hello», поэтому он возвращает «Hello» в качестве замены Значение

ТАКЖЕ ПРОЧИТАЙТЕ: SQL RIGHT JOIN Разъяснение с примерами с целочисленными аргументами

 SELECT ISNULL(NULL, 100) AS NotNULL 

В последовательном запросе мы также применяем функцию SQL ISNULL для проверки значения NULLABLE в первом параметре, который равен NULL, поэтому в результате будет возвращено целочисленное значение второго параметра, равное 100. Пример функции ULL с NULL в качестве второго аргумента

 SELECT ISNULL('функции SQL', NULL) AS ISNULL 

В предыдущем запросе функция SQL ISNULL используется для проверки значения NULL в первом аргументе. Наличие значения NULL в качестве второго аргумента не влияет на результат, он будет возвращаемое значение первого аргумента как «функции SQL»

ВЫВОД:

 

Примеры функции SQL ISNULL с именем столбца в качестве аргумента

Рассмотрим школьную базу данных с двумя таблицами для примеров функции SQL ISNULL

Студент Таблица

электронная почта

student_id имя студента приемный номер дата поступления регистрационно дата_рождения город class_id
101 Рима 10001 02-02-2000 е15200002 03. 02.1990 [email protected] 2
102 крия 10002 05.04.2001 е16200003 08.04.1991 [email protected] 1
103 Мина 10003 05.06.1999 е15200004 09.02.1989 Вадодара 3
104 карлин 2001 01.04.1998 е14200001 04-04-1989 [email protected] Вапи 1
105 дхирен 2002 02-02-1997 е13400002 03.02.1987 [email protected] Сурат 2
106 аренда 2003 01-01-1997 е13400001 03-03-1987 наем@gmail.com 2
107 махир 10004 09. 06.2000 е15200003 09.07.1990 Вапи 3
108 ниши 2004 04.02.2001 е16200001 02.03.1991 [email protected] Вадодара 1

Таблица результатов

result_id идентификатор_студента название экзамена экзамендата идентификатор субъекта получитьзнак всего баллов процент класс статус
3001 101 сем1 08.07.2001 1 80 100 80 А+ проход
3002 101 сем1 08-08-2001 2 76 100 76 А+ проход
3003 102 сем3 05-05-2000 3 67 100 67 А проход
3004 102 сем3 05. 06.2000 4 89 100 89 А+ проход
3005 102 сем3 05.07.2000 5 90 100 90 А+ проход
3006 103 сэм5 09.08.1998 6 55 100 55 Б проход
3007 105 сем3 09-09-2001 2 78 100 78 А+ проход

ТАКЖЕ ЧИТАЙТЕ: более 35 функций SQL, подробно объясненных [Практические примеры]

В приведенной выше базе данных школы таблица учащихся имеет нулевые значения в двух столбцах: электронная почта и город

Используйте функцию SQL ISNULL, чтобы проверить значения столбца города для всех учащихся, если оно равно NULL, замените его на «Surat»

 SELECT student_id, ISNULL (город, «Surat») Как «студенческий город»
ИЗ таблицыстудент;
 

В приведенном выше запросе SQL проверяет значение столбца города, используя функцию ISNULL для NULL, и заменяет его на Surat.

Реклама

ВЫВОД:

 

Функция SQL ISNULL с функцией агрегирования

Агрегированные функции, такие как AVG, SUM, MIN, MAX, могут использоваться с функцией SQL ISNULL, мы можем передать результат SQL ISNULL в качестве входных данных агрегатных функций

Например, чтобы найти средние оценки учащихся, если полученные оценки равны NULL чем заменено на 35 знаков,

 SELECT AVG(ISNULL(obtainmark, 35)) AS Avage
ИЗ dbo.tblрезультат
 

В предыдущем запросе сначала все значения NULL в столбце меток получения заменяются на 35, а затем выполняется функция AVG Aggregate для результирующего набора всех ненулевых значений

ВЫВОД:

 

Чтобы найти общее количество всех полученных оценок и определить средний процент учащихся, если ни у одного из учащихся нет NULL и оба значения столбца

 SELECT AVG(ISNULL(проценты, 35)) AS Среднее, СУММА(ISNULL(метка получения, 35)) КАК СУММА
ИЗ dbo. tblрезультат
 
  • В приведенном выше запросе функция SQL ISNULL используется как вложенная в агрегатную функцию AVG и SUM
  • Перед нахождением среднего значения в процентах функция SQL ISNULL заменит значение NULL в процентах на 35, так же, как если бы полученная оценка какого-либо учащегося не существовала, она будет заменена оценкой 35 с использованием SQL ISNULL

ТАКЖЕ ЧИТАЙТЕ: Безопасное удаление данных с помощью таблицы усечения SQL [РЕШЕНО]

ВЫВОД:

 

Функция SQL ISNULL с предложением INNER JOIN, GROUP BY и WHERE

Для подсчета успеваемости учащихся города, которые находятся в семестр 3 использовать функцию SQL ISNULL с группировкой по городам и внутренним соединением

 SELECT dbo.tblstudent.city, COUNT(ISNULL(dbo.tblstudent.city, 'Surat')) AS 'всего студентов'
ИЗ dbo.tblstudent ВНУТРЕННЕЕ СОЕДИНЕНИЕ dbo.tblresult НА dbo.tblstudent.student_id = dbo.tblresult.student_id
ГДЕ (dbo. tblresult.examname = ‘sem3’)
ГРУППА ПО dbo.tblstudent.city
 
  • Две таблицы student и result ate связаны с использованием SQL Inner join
  • Для создания групповой записи учащихся применяется пункт GROUP By city, а для подсчета записей учащихся каждого города используется функция совокупного подсчета
  • Функция SQL ISNULL применяется к столбцу города для проверки нулевого значения в том же столбце и, если существует, заменяет его названием города «Сурат»

ВЫВОД:

 

Чтобы отобразить общее количество полученных оценок за каждый семестр, минимальные полученные оценки и максимальные полученные оценки, если все оценки учащихся доступны в таблице результатов, если нет оценок, замените ноль на 30 оценок

 SELECT dbo.tblresult.examname, SUM(ISNULL(dbo.tblresult.obtainmark, 30)) AS 'Общее количество баллов', MIN(ISNULL(dbo.tblresult.obtainmark, 30)) AS 'Минимальное количество баллов', MAX(ISNULL (dbo. tblresult.obtainmark, 30)) AS 'Максимальные оценки' ИЗ dbo.tblresult
ВНУТРЕННЕЕ СОЕДИНЕНИЕ dbo.tblstudent ON dbo.tblresult.student_id = dbo.tblstudent.student_id
ВНУТРЕННЕЕ СОЕДИНЕНИЕ dbo.tblsubject ON dbo.tblresult.subjectid = dbo.tblsubject.subjectid
СГРУППИРОВАТЬ ПО dbo.tblresult.examname
 
  • В приведенном выше запросе внутреннее соединение SQL используется для соединения двух таблиц
  • Для получения итоговых, минимальных и максимальных оценок за каждый семестр используется группировка по пункту
  • Перед применением агрегатной функции SUM, MIN и MAX в полученных оценках нам необходимо проверить значения оценок, поэтому функция SQL ISNULL применяется к столбцу получения оценок

ТАКЖЕ ПРОЧИТАЙТЕ: ВНУТРЕННЕЕ СОЕДИНЕНИЕ SQL, объясненное на простых примерах

  • Функция SQL ISNULL является одной из функций T-SQL. Функция, где T-SQL — это транзакция. SQL — это проприетарная форма SQL, используемая Microsoft SQL Server, тогда как функция SQL Coalesce основана на ANSI SQL 9. 0004
  • Функция SQL IS NULL содержит только два параметра, тогда как функция SQL Coalesce может иметь несколько параметров. Если мы хотим использовать функцию SQL ISNULL с несколькими параметрами, нам нужно использовать ее как вложенную функцию SQL ISNULL

 

Примеры подобия между ISNULL() и Coalesce()

 SELECT ISNULL(NULL, 'Hello') AS 'NotNULL Value'
SELECT COALESCE (NULL, 'Hello') AS 'NotNULL Value'
 

Выше оба запроса показывают сходство между функциями Coalesce и IsNull, оба запроса дают одинаковый результат при их выполнении.

ВЫВОД:

 

Пример различия между ISNULL() и Coalesce()

 SELECT ISNULL(NULL, NULL) AS 'NotNULL Value'
SELECT COALESCE (NULL, NULL) AS 'NotNULL Value'
 

Когда мы выполним оба вышеуказанных запроса,

  • первый запрос с функцией Coalesce вернет сообщение об ошибке «По крайней мере один из аргументов COALESCE должен быть типизированным NULL»
  • Второй запрос с функцией ISNULL вернет NULL в качестве возврата

ВЫВОД:

Объявление

 ВЫБЕРИТЕ ОБЪЕДИНЕНИЕ (НУЛЬ, НУЛЬ, 10) КАК 'NotNULL Value'
ВЫБЕРИТЕ ISNULL (NULL, ISNULL (NULL, 10)) AS 'Значение NotNULL'
 

Вышеупомянутые оба запроса дадут тот же результат, что и 10, но способ записи аргументов для оценки отличается, мы можем указать больше аргументов с функцией Coalesce, тогда как с IsNULL мы можем дать только два аргумента.

ТАКЖЕ ПРОЧИТАЙТЕ: Объяснение использования внешнего ключа в SQL [Практические примеры]

ВЫВОД:

 

Разница между оператором IS NULL и функцией ISNULL() НОЛЬ. Оператор IS NULL перечисляет все записи со значением NULL

.

  • При использовании SQL Is NULL Operator логическое выражение, используемое для фильтрации записи или записей. В SQL функция ISNULL преобразует нулевое значение в другое значение
  • IS NULL используется в предложении WHERE для оценки условия. С другой стороны, ISNULL() — это функция, которая проверяет столбец или значение и возвращает конкретное значение, если оценка возвращает NULL в результате
  • .

     

    Пример различия между операторами ISNULL() и Is NULL

    Если мы хотим найти список студентов, чьи данные об идентификаторе электронной почты отсутствуют или имеют значение NULL, мы можем получить такие записи, используя оператор Is NULL с оператором условия Where в запросе выбора

     ВЫБЕРИТЕ id_студента, имя учащегося, номер приема, дату поступления, номер зачисления, дату_рождения, адрес электронной почты, город, идентификатор_класса
    ОТ tblstudent
    ГДЕ (электронная почта НУЛЕВАЯ)
     

    В приведенном выше запросе мы используем оператор Is NULL для проверки нулевого значения в отправленном по электронной почте столбце таблицы учеников

    ВЫВОД:

     

    Выполнение того же запроса с функцией ISNULL

     ВЫБЕРИТЕ student_id, имя студента, номер приема, дата поступления, enrollmentno, date_of_birth, ISNULL(email, 'abc@gmail.