В MySQL этот запрос может вызвать ошибку деления на ноль:
SELECT ROUND(noOfBoys / noOfGirls) AS ration
FROM student;
Если noOfGirls
равно 0
, то вычисление завершится ошибкой.
Как лучше всего с этим справиться?
Я хотел бы условно изменить значение noOfGirls
на 1
, когда оно равно 0
.
Есть ли способ лучше?
Подразделение 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;