Предикат IS NULL

Пример 56

Задача.

Сформировать запрос для вывода имен и номеров зачеток студентов, у которых не внесены оценки по тем или иным предметам.

Решение.

SELECT DISTINCT S.NRecordBook [№ зачётки],

SName ФИО,

NameSubject Дисциплина

FROM Student S INNER JOIN Progress P

ON S.NRecordBook= P.NRecordBook

INNER JOIN Subject Sb

ON Sb.IDSubject= P.IDSubject

WHERE Mark IS NULL;

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

Большая группа запросов включает в себя условия с отрицанием. Существует множество способов задания отрицания (см.Таблица 16). Мы уже встречались с таким запросом (см.). Однако сейчас обратим внимание на использование предиката IS [NOT] NULL.

Пример 57

Задача.

Сформировать запрос для вывода имен студентов, не сдавших хотя бы один вид отчетности.

Решение.

SELECT DISTINCT SName [Имя студента]

FROM Student S Left JOIN Progress P

ON S. NRecordBook= P. NRecordBook

WHERE Mark IS NULL;

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

Большая группа запросов включает в себя условия с отрицанием. Существует множество способов задания отрицания (см.Таблица 16). Мы уже встречались с таким запросом (см.). Однако сейчас обратим внимание на использование предиката IS NOT NULL. Наиболее часто встречающиеся ошибки связаны с попыткой написать условие отбора, например, следующим образом: Mark =NULL, Mark <>NULL или Mark!=NULL. Сразу отметим, что существует единственно корректная форма записи: Mark IS NULL (Mark IS NOT NULL)

Пример 58

Задача.

Сформировать запрос для вывода имен студентов, сдавших хотя бы один вид отчетности.

Решение.

SELECT DISTINCT SName [Имя студента]

FROM Student S Left JOIN Progress P

ON S. NRecordBook= P. NRecordBook

WHERE Mark IS NOT NULL;

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

Использование других предикатов наиболее актуально при работе с подзапросами и будет рассмотрено в другом разделе (см.).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: