Выполнение двойного деления в 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() функция

Другие вопросы по тегам