Как условно обрабатывать деление на ноль с помощью MySQL

В MySQL этот запрос может вызвать ошибку деления на ноль:

SELECT ROUND(noOfBoys / noOfGirls) AS ration
FROM student;

Если noOfGirls равно 0 , то вычисление завершится ошибкой.

Как лучше всего с этим справиться?

Я хотел бы условно изменить значение noOfGirls на 1 , когда оно равно 0 .

Есть ли способ лучше?

20
задан Eric Leschinski 18 December 2013 в 04:43
поделиться

1 ответ

Подразделение NULL на самом деле работы в сервере MySQL и возвраты NULL. Таким образом, можно сделать:

SELECT ROUND(noOfBoys / NULLIF(noOfGirls, 0)) AS ration FROM student;

я думаю NULL, отношение является самым точным для этого случая. При необходимости в отношении, чтобы быть равными numOfBoys тогда, можно использовать:

SELECT COALESCE(ROUND(noOfBoys / NULLIF(noOfGirls, 0)), noOfBoys) AS ration FROM student;
0
ответ дан 30 November 2019 в 00:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: