Не могу разделить Postgresql - PullRequest
0 голосов
/ 15 мая 2018

Может кто-нибудь сказать мне, почему это не сработает, если я поменяю его на умножение, оно будет работать, но не на деление.

SELECT (a.sales_value / a.margin) as GP

Ответы [ 2 ]

0 голосов
/ 15 мая 2018

Если вы хотите NULL, где поле равно 0 тогда попробуйте это:

SELECT CASE a.margin WHEN 0 THEN NULL ELSE (a.sales_value / a.margin END) as GP
0 голосов
/ 15 мая 2018

Чтобы избежать деления на на ноль , вы можете заменить ноль на NULL:

SELECT (a.sales_value / NULLIF(a.margin)) as GP

или применить собственное правило:

SELECT CASE
          WHEN a.margin <> 0 
          THEN (a.sales_value / a.margin)
          ELSE a.sales_value -- or 0 or 99 or whatever
       END as GP
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...