powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Сравнение с NULL
4 сообщений из 4, страница 1 из 1
Сравнение с NULL
    #39452971
Botanik1592
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
Столкнулся с такой проблемой, что не могу сравнить с 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
Сравнение с NULL
    #39452985
Botanik1592
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сам спросил, сам ответил. =)
Запрос надо было писать так:
Код: 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
Сравнение с NULL
    #39453005
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Botanik1592,

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

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


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