РУКОВОДСТВО ПО РЕЛЯЦИОННОЙ СУБД DB2

         

ВЫБОРКА ВЫЧИСЛЯЕМЫХ ЗНАЧЕНИЙ


Выдать номер и вес каждой детали в граммах для всех деталей, предполагая, что в таблице Р веса деталей заданы в фунтах (фунт приблизительно равен 454 грамма — Примеч. пер,)

SELECT                НОМЕР_ДЕТАЛИ, ВЕС *454

FROM                   Р;

Получаем результат:

НОМЕР_ДЕТАЛИ

Р1

Р2

РЗ



Р4

Р5

Рб

5448

7718

7718

6356

5448

8626

Фраза SELECT (и фраза WHERE) может включать арифметические выражения, а также простые имена полей. Можно, кроме того, осуществлять выборку просто констант. Например:

SELECT                НОМЕР_ДЕТАЛИ, 'Вес в граммах = ', ВЕС*454

FROM                   Р;

Получаем результат:

НОМЕР_ДЕТАЛИ

Р1

Р2

РЗ

Р4

Р5

Р6

Вес в граммах =

Вес в граммах =

Вес в граммах =

Вес в граммах =

Вес в граммах =

Вес в граммах =

5448

7718

7718

6356

5448

8626

Заметим, что в этом результате три столбца.

В связи с этим примером возникает следующий вопрос: что произойдет, если вес какой-либо детали имеет неопределенное значение (NULL)? Напомним, что NULL представляет неизвестное значение. Предположим, например, что вес детали Р1 задан в базе данных как неопределенное значение вместо значения 12. Каково тогда значение выражения ВЕС*454 для этой детали? Ответ состоит в том, что оно также является неопределенным значением. В общем случае фактически любое арифметическое выражение считается имеющим неопределенное значение, если какой-либо из его операндов сам имеет неопределенное значение. Иными словами, если оказывается, что вес имеет неопределенное значение, то неопределенное значение имеют и все следующие выражения:

ВЕС+454

ВЕС - 454

ВЕС*454

ВЕС/454

Неопределенные значения показываются на терминале как тире или дефис. Дальнейшее обсуждение неопределенных значений связано с примером в разделе 4.2.10.



Содержание раздела