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

Tại sao NULL không thể được chuyển đổi thành null của JSON trong postgreSQL?

to_json được đánh dấu là STRICT , nó có nghĩa là - trả về NULL khi bất kỳ tham số nào là NULL. Tôi không chắc liệu nó có được triển khai chính xác hay không, có thể đó là lỗi PostgreSQL.

Cập nhật:Sau khi thảo luận về danh sách gửi thư của Postgres, đây không phải là lỗi, mà là tính năng - tình hình không đơn giản do thực tế, vì vậy cả hai ngôn ngữ đều hỗ trợ NULL, nhưng hoạt động của NULL có chút khác biệt so với bất kỳ ngôn ngữ nào. Thật khó để quyết định liệu SQL NULL có phải được chuyển đổi ngay lập tức thành JSON NULL hay không và mất hành vi SQL ngay lập tức. Nếu bạn cần hành vi khác, bạn có thể sử dụng một hàm SQL:

CREATE OR REPLACE FUNCTION to_json2(anyelement)
RETURNS json AS $$
SELECT COALESCE(to_json($1), json 'null')
$$ LANGUAGE sql;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thay đổi khóa chính trong bảng PostgreSQL

  2. Lỗi PostGIS:Không thể chọn một chức năng ứng cử viên tốt nhất

  3. Cập nhật mật khẩu PostgreSQL của bạn trong Linux

  4. Giá trị duy nhất của PostgreSQL chiếm được nhiều cột

  5. Làm cách nào để gửi một số yêu cầu http từ hàm postgresql hoặc trình kích hoạt