PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

BŁĄD:tablica nie może zawierać wartości NULL PostgreSQL

&& operator nie obsługuje NULL wartości. Potrzebujesz więc innego podejścia. Na przykład możesz najpierw dołączyć dane do tabeli. To daje ci id s, które są powiązane z Twoimi wymaganymi danymi. W drugim kroku możesz agregować wszystkie wartości za pomocą tych id s.

demonstracja krok po kroku:db<>skrzypce

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. Utwórz tabelę lub wynik zapytania zawierający odpowiednie dane, w tym NULL wartość.
  2. Możesz dołączyć do danych, m.in. NULL wartość, używając operatora IS NOT DISTINCT FROM , który uwzględnia NULL .
  3. Teraz pobrałeś odpowiedni id wartości, które mogą być użyte w WHERE filtruj
  4. Wreszcie możesz zrobić swoją agregację


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zwiększyć maksymalną liczbę połączeń w postgresie?

  2. Wdrażasz bazę danych Postgres na platformie Azure Container Instance?

  3. Wyodrębnianie nazw kluczy z prawdziwymi wartościami z obiektu JSONB

  4. Agregat produktów w PostgreSQL

  5. Jak pokazać dziadka w hierarchii sql?