sql >> Database teknologi >  >> RDS >> PostgreSQL

FEJL:array må ikke indeholde nulls PostgreSQL

&& operatøren understøtter ikke NULL værdier. Så du har brug for en anden tilgang. For eksempel kan du først forbinde dataene med tabellen. Dette giver dig id s, som er knyttet til dine nødvendige data. På det andet trin er du i stand til at arregere alle værdier ved hjælp af disse id s.

trin-for-trin demo:db<>spille

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. Opret en tabel eller et forespørgselsresultat, som indeholder dine relevante data, inkl. NULL værdi.
  2. Du kan tilslutte data, inkl. NULL værdi ved at bruge operatoren IS NOT DISTINCT FROM , som betragter NULL .
  3. Nu har du hentet det relevante id værdier, som kan bruges i WHERE filter
  4. Endelig kan du foretage din aggregering


  1. Da SQL Server ikke har pakker, hvad gør programmører så for at komme uden om det?

  2. Oprettelse af indlejret JSON ved hjælp af PHP MySQL

  3. Hvordan laver man arvemodellering i relationelle databaser?

  4. Oprettelse af tabel og indsættelse inden for samme procedure i pl/sql