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

Tại sao PostgreSQL không trả về giá trị null khi điều kiện là <> true

Mọi RDBMS nửa vời thực hiện theo cùng một cách, vì nó chính xác .
Tôi đang trích dẫn hướng dẫn sử dụng Postgres tại đây:

Các toán tử so sánh thông thường mang lại giá trị null (biểu thị "không xác định"), nottrue hoặc false, khi một trong hai đầu vào là null. Ví dụ:7 = NULL yieldsnull, cũng như 7 <> NULL . Khi hành vi này không phù hợp, hãy sử dụng IS [ NOT ] DISTINCT FROM cấu trúc:

expression IS DISTINCT FROM expression
expression IS NOT DISTINCT FROM expression

Lưu ý rằng các biểu thức này hoạt động chậm hơn một chút so với expression <> expression đơn giản so sánh.

Đối với boolean giá trị ở đó cũng đơn giản hơn IS NOT [TRUE | FALSE] .
Để nhận được những gì bạn mong đợi trong truy vấn thứ hai, hãy viết:

SELECT * FROM table WHERE avalue IS NOT TRUE;

SQL Fiddle.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chuyển đổi các truy vấn SELECT DISTINCT ON từ Postgresql sang MySQL

  2. 3 cách để định dạng một số dưới dạng phần trăm trong PostgreSQL

  3. Làm cách nào để đặt cơ sở dữ liệu dưới quyền git (kiểm soát phiên bản)?

  4. Làm cách nào để cài đặt pg gem của PostgreSQL trên Ubuntu?

  5. Tham gia truy vấn chỉ với các cột có tất cả các giá trị trong mệnh đề `in`