PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

ERRO:array não deve conter nulos PostgreSQL


O && operador não suporta NULL valores. Então, você precisa de outra abordagem. Por exemplo, você pode unir os dados à tabela primeiro. Isso fornece o id s que estão vinculados aos seus dados necessários. Na segunda etapa você pode arrecadar todos os valores usando estes id s.

demonstração passo a passo:db<>fiddle
SELECT
    id,
    ARRAY_AGG(session_os)                        -- 4                         
FROM t
WHERE id IN (                                    -- 3
    SELECT 
        id
    FROM
        t
    JOIN (
        SELECT unnest(ARRAY[1, null]) as a       -- 1
    )s ON s.a IS NOT DISTINCT FROM t.session_os  -- 2
)
GROUP BY id
  1. Crie uma tabela ou resultado de consulta que contenha seus dados relevantes, incl. o NULL valor.
  2. Você pode juntar os dados, incl. o NULL valor, usando o operador IS NOT DISTINCT FROM , que considera o NULL .
  3. Agora você obteve o id relevante valores que podem ser usados ​​no WHERE filtro
  4. Finalmente você pode fazer sua agregação