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

NULL emements bị mất khi truyền kết quả của unnest ()

Chức năng truyền SRF (trong mệnh đề FROM) không được hỗ trợ - bạn không thể sử dụng bất kỳ toán tử nào ở đó. Chỉ cho phép lệnh gọi hàm.

chỉ có thể truyền trong danh sách cột:

postgres=# SELECT * FROM unnest('{2,NULL,1}'::int[])::text;
ERROR:  syntax error at or near "::"
LINE 1: SELECT * FROM unnest('{2,NULL,1}'::int[])::text;
                                                 ^
postgres=# SELECT v::text FROM unnest('{2,NULL,1}'::int[]) g(v);
   v    
────────
      2
 [null]
      1
(3 rows)

Thiếu hàng từ NULL có thể là lỗi và cần được báo cáo

postgres=# SELECT unnest('{1,NULL,4}'::int[])::text;
 unnest 
────────
      1
 [null]
      4
(3 rows)

postgres=# SELECT unnest('{1,NULL,4}'::int[])::numeric;
 unnest 
────────
      1
      4
(2 rows)

Không có lý do gì, tại sao hàng NULL nên bị loại bỏ, tôi nghĩ




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ánh xạ văn bản PostgreSQL [] [] kiểu và kiểu Java

  2. Cách lấy các phần tử từ mảng Json trong PostgreSQL

  3. Cột không tồn tại?

  4. Phạm vi của Rails cho IS NOT NULL và không trống / trống?

  5. PostgreSQL:chèn từ bảng khác