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
Результирующий набор:
Description | DiscountPct | MinQty | Максимальное количество |
---|---|---|---|
Без скидки | 0,00 | 0 | 0 |
Оптовая скидка | 0,02 | 11 | 14 |
Оптовая скидка | 0,05 | 15 | 4 |
Оптовая скидка | 0,10 | 25 | 0 |
Оптовая скидка | 0,15 | 41 | 0 |
Оптовая скидка | 0,20 | 61 | 0 |
Mountain-100 Cl | 0,35 | 0 | 0 |
Sport Helmet Di | 0,10 | 0 | 0 |
Road-650 Overst | 0,30 | 0 | 0 |
Mountain Tire S | 0,50 | 0 | 0 |
Sport Helmet Di | 0,15 | 0 | 0 |
LL Road Frame S | 0,35 | 0 | 0 |
Touring-3000 Pr | 0,15 | 0 | 0 |
Touring-1000 Pr | 0,20 | 0 | 0 |
Half-Price Peda | 0,50 | 0 | 0 |
Mountain-500 Si | 0,40 | 0 | 0 |
(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;
Здесь приводится частичный результирующий набор.
ResellerName | MinimumPayment |
---|---|
A Bicycle Association | 0,0000 |
A Bike Store | 0,0000 |
A Cycle Shop | 0,0000 |
A Great Bicycle Company | 0,0000 |
A Typical Bike Shop | 200,0000 |
Acceptable Sales & Service | 0,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
.
.
Пример различия между операторами ISNULL() и Is NULL
Если мы хотим найти список студентов, чьи данные об идентификаторе электронной почты отсутствуют или имеют значение NULL, мы можем получить такие записи, используя оператор Is NULL с оператором условия Where в запросе выбора
ВЫБЕРИТЕ id_студента, имя учащегося, номер приема, дату поступления, номер зачисления, дату_рождения, адрес электронной почты, город, идентификатор_класса ОТ tblstudent ГДЕ (электронная почта НУЛЕВАЯ)
В приведенном выше запросе мы используем оператор Is NULL для проверки нулевого значения в отправленном по электронной почте столбце таблицы учеников
ВЫВОД:
Выполнение того же запроса с функцией ISNULL
ВЫБЕРИТЕ student_id, имя студента, номер приема, дата поступления, enrollmentno, date_of_birth, ISNULL(email, 'abc@gmail.