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

Toán tử ký hiệu và (&) trong mệnh đề WHERE của SQL Server

&là toán tử và logic bitwise - Nó thực hiện thao tác trên 2 giá trị nguyên.

WHERE (sc.Attributes & 1) = 0 

Đoạn mã trên kiểm tra xem sc.Attributes có phải là số chẵn hay không. Điều này cũng giống như nói rằng bit đầu tiên không được thiết lập.

Bởi vì tên của cột mặc dù:"Thuộc tính", thì giá trị "1" có thể chỉ là một số cờ có một số ý nghĩa bên ngoài.

Người ta thường sử dụng 1 chữ số nhị phân cho mỗi cờ được lưu trữ trong một số cho các thuộc tính. Vì vậy, để kiểm tra bit đầu tiên, bạn sử dụng sc.Attributes &1, để kiểm tra bit thứ hai, bạn sử dụng sc.Attributes &2, để kiểm tra bit thứ ba, bạn sử dụng sc.Attributes &4, để kiểm tra thứ tư, bạn sử dụng sc.Attributes &8, ...

Phần =0 đang kiểm tra xem có phải bit đầu tiên KHÔNG được đặt hay không.

Một số ví dụ nhị phân:(==để hiển thị kết quả của phép toán)

//Check if the first bit is set, same as sc.Attributes&1
11111111 & 00000001 == 1
11111110 & 00000001 == 0
00000001 & 00000001 == 1


//Check if the third bit is set, same as sc.Attributes&4
11111111 & 00000100 == 1
11111011 & 00000100 == 0
00000100 & 00000100 == 1


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách COUNT_BIG () hoạt động trong SQL Server

  2. Cách thêm nhóm người dùng Active Directory làm đăng nhập trong SQL Server

  3. ON [PRIMARY] có nghĩa là gì?

  4. Cách chỉ định tên khóa chính trong EF-Code-First

  5. Đếm hàng cho tất cả các bảng cùng một lúc