226
Глава 11. Условная логика
В этом запросе я не хотел проводить различия между клиентами, име
ющими более двух счетов, поэтому выражение
case
просто создает ка
тегорию
'3+'
. Подобный запрос может быть полезным при поиске кли
ентов, с которыми можно связаться и предложить открыть новый счет
в банке.
Ошибки деления на нуль
Проводя вычисления, включающие деление, нужно все время забо
титься о том, чтобы знаменатель никогда не был равен нулю. Некото
рые серверы БД, такие как Oracle Database, встретив нулевой знамена
тель, формируют ошибку, а MySQL просто присваивает результату вы
числения значение
null
, как показывает следующий пример:
mysql>
SELECT 100 / 0;
++
| 100 / 0 |
++
| NULL |
++
1 row in set (0.00 sec)
Чтобы защитить вычисления от ошибок или, еще хуже, от загадочного
получения
null
, следует ко всем знаменателям применять условную
логику, как показано далее:
mysql>
Достарыңызбен бөлісу: