sql >> Databáze >  >> RDS >> PostgreSQL

CHYBA:pole nesmí obsahovat null PostgreSQL

&& operátor nepodporuje NULL hodnoty. Takže potřebujete jiný přístup. Můžete například nejprve spojit data do tabulky. Tím získáte id s, které jsou propojeny s vašimi požadovanými údaji. Ve druhém kroku jste schopni agregovat všechny hodnoty pomocí těchto id s.

demonstrace krok za krokem:db<>housle

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. Vytvořte tabulku nebo výsledek dotazu, který bude obsahovat vaše relevantní data, vč. NULL hodnotu.
  2. Můžete připojit data, vč. NULL hodnotu pomocí operátoru IS NOT DISTINCT FROM , který bere v úvahu NULL .
  3. Nyní jste získali relevantní id hodnoty, které lze použít v WHERE filtr
  4. Konečně můžete provést agregaci


  1. Použití klauzule EXCEPT v PostgreSQL

  2. T-sql - určuje, zda je hodnota celé číslo

  3. Použití Non-Capturing Groups v MySQL REGEXP

  4. Co je MySQL ekvivalentem PostgreSQL EXPLAIN ANALYZE