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

LÀ NULL so với <> 1 bit SQL

Lý do <> không hoạt động là SQL xử lý NULL như không xác định - nó không biết NULL là gì được cho là có nghĩa, vì vậy nó đánh giá cả =<> trên NULL giá trị là UNKNOWN (được coi là sai trong mệnh đề where hoặc điều kiện nối). Để biết thêm thông tin, hãy đọc phần này: Tại sao NULL =NULL đánh giá là false trong máy chủ SQL .

Nếu có một chỉ mục trên đó, việc sử dụng hàm ISNULL sẽ có nghĩa là không thể sử dụng chỉ mục, vì vậy, để đảm bảo truy vấn có thể sử dụng chỉ mục chỉ cần sử dụng OR :

SELECT * 
FROM TableName
WHERE
   bit_column_value IS NULL OR bit_column_value = 0


  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 ‘time’ thành ‘datetimeoffset’ trong SQL Server (Ví dụ T-SQL)

  2. Tại sao truy vấn này chậm lần đầu tiên sau khi tôi bắt đầu dịch vụ?

  3. SQL và nhiều câu lệnh trong thủ tục được lưu trữ

  4. Trong SSIS, làm cách nào để lấy số hàng được trả về từ Nguồn NÊN được xử lý

  5. Truy vấn con v / s tham gia bên trong máy chủ sql