Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Operator ampersand (&) w SQL Server klauzula WHERE

&jest bitowym operatorem logicznym i — wykonuje operację na 2 wartościach całkowitych.

WHERE (sc.Attributes & 1) = 0 

Powyższy kod sprawdza, czy sc.Attributes jest liczbą parzystą. To jest to samo, co powiedzenie, że pierwszy bit nie jest ustawiony.

Jednak ze względu na nazwę kolumny:"Atrybuty", wtedy wartość "1" jest prawdopodobnie tylko flagą, która ma jakieś znaczenie zewnętrzne.

Powszechnie używa się 1 cyfry binarnej dla każdej flagi przechowywanej w liczbie dla atrybutów. Tak więc, aby przetestować pierwszy bit, użyj sc.Atrybuty&1, aby przetestować drugi, użyj sc.Atrybuty&2, aby przetestować trzeci, użyj sc.Atrybuty&4, aby przetestować czwarty, użyj sc.Atrybuty&8, ...

Część =0 sprawdza, czy pierwszy bit NIE jest ustawiony.

Kilka przykładów binarnych:(==aby pokazać wynik operacji)

//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. Uzupełnij brakujące daty dla wyniku zapytania SQL Server za pomocą CTE

  2. Sprawdź, ile elementów poczty znajduje się w kolejce w poczcie bazy danych w programie SQL Server (T-SQL)

  3. Klauzula wyjściowa SQL Server do zmiennej skalarnej

  4. 2 sposoby na zwrócenie wszystkich funkcji zdefiniowanych przez użytkownika w bazie danych SQL Server

  5. Funkcje ciągów SQL Server (pełna lista)