Udostępnij za pomocą


& (Bitowe AND) (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punkt końcowy analizy SQL w usłudze Microsoft FabricHurtownia danych w usłudze Microsoft FabricBaza danych SQL w usłudze Microsoft Fabric

Wykonuje bitową operację logiczną AND między dwiema wartościami całkowitymi.

Transact-SQL konwencje składni

Syntax

expression & expression  

Arguments

expression
Jest dowolnym prawidłowym wyrażeniem dowolnego typu danych kategorii typu danych całkowitych lub bitu albo binarnych lub varbinary typów danych. Wyrażenie jest traktowane jako liczba binarna dla operacji bitowej.

Note

W operacji bitowej tylko jedno wyrażenie może być typu danych binarnych lub varbinary .

Typy wyników

int , jeśli wartości wejściowe są int.

smallint, jeśli wartości wejściowe są małe.

tinyint , jeśli wartości wejściowe są małe lub bitowe.

Remarks

Operator i bitowy wykonuje bitową wartość logiczną AND między dwoma wyrażeniami, biorąc każdy odpowiadający bit dla obu wyrażeń. Bity w wyniku są ustawione na 1, jeśli i tylko wtedy, gdy oba bity (dla bieżącego bitu rozpoznawanego) w wyrażeniach wejściowych mają wartość 1; w przeciwnym razie bit w wyniku ma wartość 0.

Jeśli wyrażenia po lewej i prawej mają różne typy danych całkowitych (na przykład wyrażenie po lewej stronie jest małe , a prawe wyrażenie jest int), argument mniejszego typu danych jest konwertowany na większy typ danych. W tym przypadku wyrażeniesmallint jest konwertowane na int.

Examples

Poniższy przykład tworzy tabelę przy użyciu typu danych int do przechowywania wartości i wstawia dwie wartości do jednego wiersza.

CREATE TABLE bitwise (   
  a_int_value INT NOT NULL,  
  b_int_value INT NOT NULL);  
GO  
INSERT bitwise VALUES (170, 75);  
GO  

To zapytanie wykonuje bitowe operacje AND między kolumnami a_int_value i b_int_value .

SELECT a_int_value & b_int_value  
FROM bitwise;  
GO  

Oto zestaw wyników:

-----------   
10            
  
(1 row(s) affected)  

Binarna reprezentacja wartości 170 (a_int_value lub A) to 0000 0000 1010 1010. Binarna reprezentacja wartości 75 (b_int_value lub B) to 0000 0000 0100 1011. Wykonanie operacji bitowej AND na tych dwóch wartościach powoduje wygenerowanie wyniku 0000 0000 0000 1010binarnego , czyli liczby dziesiętnej 10.

(A & B)  
0000 0000 1010 1010  
0000 0000 0100 1011  
-------------------  
0000 0000 0000 1010  

Zobacz też

Wyrażenia (Transact-SQL)
Operatory (Transact-SQL)
Operatory bitowe (Transact-SQL)
&= (Bitowe i przypisywanie) (Transact-SQL)
Operatory złożone (Transact-SQL)