Оператор IS используется для определения различия между неверным и неизвестным значением.
Пример 1. Найти все записи в таблице с информацией об успеваемости со значениями NULL в поле OCENKA:
SELECT *
FROM USP
WHERE OCENKA IS NULL;
Данных в качестве результата этого запроса не будет, потому что в таблице отсутствуют значения NULL в поле OCENKA.
Пример 2. Необходимо устранить NULL из вывода информации об успеваемости. Воспользуемся запросом, содержащем NOT в предикате:
Способ.
SELECT *
FROM USP
WHERE OCENKA NOT NULL;
Результат запроса:
UNUM OCENKA UDATE SNUM PNUM
----------------------------------------------------------------------
1001 5 10/06/1999 3412 2001
1002 4 10/06/1999 3413 2003
1003 3 11/06/1999 3414 2005
1004 4 12/06/1999 3412 2003
1005 5 12/06/1999 3416 2004
Т.е. при отсутствии значений NULL будет выведена вся таблица успеваемости.
Способ.
SELECT *
FROM USP
WHERE NOT OCENKA IS NULL;
Пример 3. Представить информацию об успеваемости студентов, номер билета которых не 3412 и не 3413.
Способ.
SELECT *
FROM USP
WHERE SNUM NOT IS (3412; 3413);
Способ.
SELECT *
FROM USP
WHERE NOT SNUM IS (3412, 3413);
Результат запроса:
UNUM OCENKA UDATE SNUM PNUM
|
|
------------------------------------------------------------------------
1003 3 11/06/1999 3414 2005
1005 5 12/06/1999 3416 2004
Аналогичным способом можно использовать весь набор стандартных математических и специальных операторов.
Оператор DISTINCT.
Оператор DISTINCT обеспечивает возможность устранять повторяющиеся значения из предложения SELECT.
Составим запрос, который определяет какие студенты в настоящее время сдавали учебные предметы, причём не требуется уточнение полученной оценки и сдаваемого предмета.
SELECT SNUM
FROM USP;
Результат запроса:
SNUM
--------
Для получения списка результатов без дубликатов используем запрос
SELECT DISTINCT SNUM
FROM USP;
Результат запроса:
SNUM
--------
Замечание 1: DISTINCT может указываться только один раз в данном предложение SELECT.
Замечание 2: Если вместо DISTINCT указать ALL, то это будет иметь противоположный эффект и дублирование строк вывода сохранится.
Получение итоговых данных.