Выполнение двойного деления в sql
Я пытаюсь дважды разделить, но я не получаю результатов.
Ниже приведен пример:
6.82 / (X/NULLIF (Y,0))
2 ответа
6.82 / (X / ISNULL(Y,0))
Это приведет к ошибке деления на ноль, когда Y
является NULL
или же 0
, Вы можете ввести условную логику для обработки такой ошибки.
Если Y
является NULL
или же 0
тогда ваш знаменатель будет равен -
( X / 0 )
Это должно привести к делению на 0
ошибка.
Этот потенциал для ошибки можно исправить, переписав ваше общее выражение как -
( 6.82 * COALESCE( Y, 0 ) ) / X
COALESCE()
функция должна вернуть первый неNULL
аргумент, с которым он сталкивается, таким образом, в этом случае, если Y
ноль, он вернется 0
иначе вернется Y
,
Точно так же, если X
равно 0
затем деление на 0
ошибка должна появиться. Как этого избежать, зависит от контекста этой проблемы, который вы не определили. Таким образом, я не могу предложить, как справиться с этой ситуацией.
Если у вас есть какие-либо вопросы или комментарии, пожалуйста, не стесняйтесь оставить комментарий соответственно.
Дальнейшее чтение
https://dev.mysql.com/doc/refman/5.7/en/comparison-operators.html (в MySQL COALESCE()
функция