sql >> Databasteknik >  >> RDS >> PostgreSQL

FEL:array får inte innehålla nulls PostgreSQL

&& Operatören stöder inte NULL värden. Så du behöver ett annat tillvägagångssätt. Du kan till exempel koppla data till tabellen först. Detta ger dig id s som är länkade till dina nödvändiga uppgifter. I det andra steget kan du sortera alla värden med dessa id s.

steg-för-steg-demo:db<>fiol

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. Skapa en tabell eller frågeresultat som innehåller dina relevanta data, inkl. NULL värde.
  2. Du kan gå med i data, inkl. NULL värde, med operatorn IS NOT DISTINCT FROM , som betraktar NULL .
  3. Nu har du hämtat relevant id värden som kan användas i WHERE filter
  4. Äntligen kan du göra din aggregering


  1. Konvertera DateTime till formatet ÅÅÅÅ-MM-DD i SQL Server

  2. Vad returnerar en framgångsrik MySQL DELETE? Hur kontrollerar jag om DELETE lyckades?

  3. Mysql hur man returnerar rader även om joindata är tom

  4. Hur man lagrar en fil i en mysql-databas med blob