Помощь в написании студенческих работ
Антистрессовый сервис

Работа с пустыми значениями

РефератПомощь в написанииУзнать стоимостьмоей работы

Очень важно отметить, что столбец с пустым значением никогда ничему не будет равен (включая пустое значение). Эта мысль заслуживает неоднократного повторения. Многие разработчики попадают в ловушку при попытке выбрать данные из таблицы с применением условного оператора по отношению к пустому столбцу. К сожалению, Oracle в ответ на этот запрос не генерирует сообщение об ошибке (на что можно… Читать ещё >

Работа с пустыми значениями (реферат, курсовая, диплом, контрольная)

Пустое значение (null) означает отсутствие какого-либо значения в столбце, в противоположность нулю или пробелам. Приведем простой пример. В компании служащие отдела сбыта получают жалование в зависимости от выработки, а не фиксированный оклад. Поэтому столбец salary (жалование) всех сотрудников этого отдела — незаполненный или пустой. Проблема состоит в том, что ПУСТОЕ ЗНАЧЕНИЕ НИЧЕГО НЕ СОДЕРЖИТ. К пустым значениям нельзя применять логические операторы. Например, следующий запрос работать не будет: select emp_last_name from emp.

where salary = null; no rows selected.

Очень важно отметить, что столбец с пустым значением никогда ничему не будет равен (включая пустое значение). Эта мысль заслуживает неоднократного повторения. Многие разработчики попадают в ловушку при попытке выбрать данные из таблицы с применением условного оператора по отношению к пустому столбцу. К сожалению, Oracle в ответ на этот запрос не генерирует сообщение об ошибке (на что можно было бы надеяться). Для выполнения проверки на пустое значение в языке SQL предусмотрен оператор IS NULL (hhh IS NOT NULL для получения всех строк, в которые внесены данные), как показано в следующем примере:

select emp Jast.name from emp.

where salary is null;

EMP LAST NAME SIM.

ANNUNZIATO.

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

select emp_Iast_name, salary + sales_quota * commission_rate.

from emp.

where dept_no = 60.

order by salary + sales quota * commission rate; EMP_LAST_MAME SALARY+SALES_QUOTA* COMMISSION. RATE.

FARRELL.

MATTEO 414 897.

SIM.

Этот запрос возвращает пустые значения для всех служащих, кроме коммерческого директора, который получает и жалование, и комиссионные. Функция nvl Oracle исправляет эту ситуацию, указывая запросу, чтобы он подставил определенное значение в любом случае, если будет найдено пустое значение. Для этой функции требуются два аргумента: столбец, который может быть пустым, и подставляемое значение, которое должно использоваться взамен всех пустых значений. Следующий запрос может использоваться для получения значения для каждой строки, где одним из компонентов в выражении могло быть пустое значение: select emp _last_name,.

nvl (salary, 0) + nvl (sales_quota, 0) * nvl (commission_rate, 0) from emp.

where dept_no = 60.

order by nvl (salary, 0) + nvl (sales_quota, 0) * nvl (commlssion_rate, 0);

EMP LAST NAME NVL (SALARY.0HNVL (SALES OUOTA. O)* NVLtCOMMISSION RATE, 0).

SIM 94 362.75.

ANNUNZIATO 135 534.15.

FARRELL 206 412.35.

MATTEO 414 897.

Для выборки данных, в которых значение является (или не является) элементом множества значении, используйте оператор IN или not in, как показано в следующих примерах: select emp_ last_ паше from emp.

where dept_.no in (30,40);

EMPJLASTJSAME.

BRUNNER.

BROWN.

SMITH.

JONES.

OBRIEN.

GIARDINA select dept_no, dept_name from dept.

where location not in ('NEW YORK', 'CHICAGO');

DEPT NO DEPT NAME 40 BROADCAST OPERATIONS.

30 HOSPITAL SERVICES.

Показать весь текст
Заполнить форму текущей работой