Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Сравнение с NULL / 4 сообщений из 4, страница 1 из 1
15.05.2017, 10:54
    #39452971
Botanik1592
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение с NULL
Всем привет!
Столкнулся с такой проблемой, что не могу сравнить с NULL внутри CASE. Запрос выглядит так:
Код: ruby
1.
.select("CASE SUM(amount_usd) FILTER (WHERE amount_usd > 0) WHEN ISNULL THEN 0 ELSE SUM(amount_usd) FILTER (WHERE amount_usd > 0) END AS deposits_sum")



В результате я ожидаю примерно такую картину:
Код: plsql
1.
2.
...[ RECORD 1 ]-----+--------------
deposits_sum        |     0    



А получаю:
Код: plsql
1.
2.
...[ RECORD 1 ]-----+--------------
deposits_sum        |



Что я делаю не так?
...
Рейтинг: 0 / 0
15.05.2017, 11:20
    #39452985
Botanik1592
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение с NULL
Сам спросил, сам ответил. =)
Запрос надо было писать так:
Код: ruby
1.
.select("CASE WHEN (SUM(amount_usd) FILTER (WHERE amount_usd > 0)) IS NULL THEN 0 ELSE SUM(amount_usd) FILTER (WHERE amount_usd > 0) END AS deposits_sum")
...
Рейтинг: 0 / 0
15.05.2017, 11:53
    #39453005
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение с NULL
Botanik1592,

Не проще ли сделать
Код: sql
1.
coalesce(SUM(amount_usd) FILTER (WHERE amount_usd > 0), 0)
...
Рейтинг: 0 / 0
15.05.2017, 12:02
    #39453014
Botanik1592
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение с NULL
Melkij,

да, проще, уже так и сделал. Отсутствие опыта мешает. ((
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Сравнение с NULL / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]