ВЫБОРКА ВЫЧИСЛЯЕМЫХ ЗНАЧЕНИЙ
Выдать номер и вес каждой детали в граммах для всех деталей, предполагая, что в таблице Р веса деталей заданы в фунтах (фунт приблизительно равен 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.