JastaFly
@JastaFly

Как удалить null из выборки?

Есть вот такой запрос, который отбирает некоторые значения из базы в зависимости от даты:
SELECT f.name,
    array_agg(
        CASE
            WHEN (((CURRENT_TIMESTAMP - f_attr.value_timestamp) < '24:00:00'::interval) AND ((CURRENT_TIMESTAMP - f_attr.value_timestamp) > '00:00:00'::interval)) THEN attr.name
            ELSE NULL::character varying
        END) AS today_tasks,
    array_agg(
        CASE
            WHEN (((f_attr.value_timestamp - CURRENT_TIMESTAMP) > '19 days 23:59:59'::interval) AND ((f_attr.value_timestamp - CURRENT_TIMESTAMP) < '21 days'::interval)) THEN attr.name
            ELSE NULL::character varying
        END) AS twenty_days_tasks
   FROM (((public.attribute_type attr_t
     JOIN public.attribute attr ON ((attr_t.attribute_type_id = attr.attribute_type_id)))
     JOIN public.film_attributes f_attr ON ((attr.attribute_id = f_attr.attribute_id)))
     JOIN public.film f ON ((f_attr.film_id = f.film_id)))
  WHERE ((attr_t.attribute_type_id = 6) AND ((((CURRENT_TIMESTAMP - f_attr.value_timestamp) < '24:00:00'::interval) AND ((CURRENT_TIMESTAMP - f_attr.value_timestamp) > '00:00:00'::interval)) OR (((f_attr.value_timestamp - CURRENT_TIMESTAMP) > '19 days 23:59:59'::interval) AND ((f_attr.value_timestamp - CURRENT_TIMESTAMP) < '21 days'::interval))))
  GROUP BY f.film_id;

Результат получается следующим:
62bca366ae3fc056093186.jpeg
Так вот подскажите как удалить NULL из массива?!??
  • Вопрос задан
  • 523 просмотра
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
array_agg(attr.name) filter(where ...)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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