Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Operator Ampersand (&) dalam SQL Server WHERE Clause

&adalah bitwise logis dan operator - Ini melakukan operasi pada 2 nilai integer.

WHERE (sc.Attributes & 1) = 0 

Kode di atas memeriksa untuk melihat apakah sc.Attributes adalah bilangan genap. Yang sama dengan mengatakan bahwa bit pertama tidak disetel.

Karena nama kolom:"Atribut", maka nilai "1" mungkin hanya beberapa bendera yang memiliki arti eksternal.

Adalah umum untuk menggunakan 1 digit biner untuk setiap bendera yang disimpan dalam nomor untuk atribut. Jadi untuk menguji bit pertama Anda menggunakan sc.Attributes&1, untuk menguji yang kedua Anda menggunakan sc.Attributes&2, untuk menguji yang ketiga Anda menggunakan sc.Attributes&4, untuk menguji yang keempat Anda menggunakan sc.Attributes&8, ...

Bagian =0 sedang menguji untuk melihat apakah bit pertama TIDAK disetel.

Beberapa contoh biner:(==untuk menunjukkan hasil operasi)

//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. Bagaimana Pengaturan Bahasa dapat Mempengaruhi Hasil FORMAT() Anda di SQL Server (Contoh T-SQL)

  2. Kembalikan Informasi Kolom dari Server Tertaut di SQL Server (Contoh T-SQL)

  3. sisipan massal pyodbc dasar

  4. Klausa SQL OVER() - kapan dan mengapa ini berguna?

  5. Apa Nama Batasan Default di SQL Server?