PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

LỖI:mảng không được chứa rỗng PostgreSQL

&& toán tử không hỗ trợ NULL các giá trị. Vì vậy, bạn cần một cách tiếp cận khác. Ví dụ, bạn có thể nối dữ liệu vào bảng trước. Điều này cung cấp cho bạn id s được liên kết với dữ liệu yêu cầu của bạn. Ở bước thứ hai, bạn có thể tổng hợp tất cả các giá trị bằng cách sử dụng id này s.

bản trình diễn từng bước: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. Tạo một bảng hoặc kết quả truy vấn chứa dữ liệu có liên quan của bạn, bao gồm NULL giá trị.
  2. Bạn có thể kết hợp dữ liệu, bao gồm NULL giá trị, sử dụng toán tử IS NOT DISTINCT FROM , coi NULL .
  3. Bây giờ bạn đã tìm nạp id có liên quan các giá trị có thể được sử dụng trong WHERE bộ lọc
  4. Cuối cùng, bạn có thể thực hiện việc tổng hợp của mình


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Đặt múi giờ tùy chỉnh trong Django / PostgreSQL (Giờ chuẩn Ấn Độ)

  2. Làm cách nào để truy vấn đơn giản và hiệu quả cho các mối quan hệ lồng nhau trong SQL?

  3. Đặt giới hạn thành array_agg ()

  4. Sự cố với tên cột chứa dấu hai chấm trong PostgreSQL

  5. PostgreSQL - Gán giá trị số nguyên cho chuỗi trong câu lệnh trường hợp