@EVOSandru6

Как вернуть в запросе значение по умолчанию, если SELECT возвращает NULL или ничего не возвращает для определенного выраженгия?

Добрый день!

Например я хочу чтобы донное выражение возвращало мне 0 или скажем 1, если результатом выражения rating вернется NULL:

SELECT
                m_users.id,
                  ( SUM(mc_rating.name) / COUNT(mc_rating.name)) as rating ...
  • Вопрос задан
  • 941 просмотр
Пригласить эксперта
Ответы на вопрос 2
rshaibakov
@rshaibakov
Web-разработчик
Есть несколько решений в оф. документации. Выбор за вами.
Ответ написан
@egor90
select coalesce(   ( SUM(mc_rating.name) / COUNT(mc_rating.name) ), 0::integer ) as rating, ...


Но не понимаю, если rating не null, то будет 2 колонки, а в противном случае одна?

Попробуйте подзапрос:

with _rating as ( select
    m_users.id,
    coalesce(   ( SUM(mc_rating.name) / COUNT(mc_rating.name) ), 0::integer ) as rating ....
)
select * from _rating r where r.rating > 0
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы