Dela via


& (Bitvis OCH) (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalysplattformssystem (PDW)SQL-analysslutpunkt i Microsoft FabricLager i Microsoft FabricSQL-databas i Förhandsversion av Microsoft Fabric

Utför en bitvis logisk AND-åtgärd mellan två heltalsvärden.

Transact-SQL syntaxkonventioner

Syntax

expression & expression  

Arguments

expression
Är ett giltigt uttryck för någon av datatyperna i heltalsdatatypen kategori, bit eller binära eller varbinära datatyper. uttrycket behandlas som ett binärt tal för bitvis-åtgärden.

Note

I en bitvis åtgärd kan endast ett uttryck vara av antingen binär eller varbinär datatyp.

Result Types

int om indatavärdena är int.

smallint om indatavärdena är småint.

tinyint om indatavärdena är tinyint eller bit.

Remarks

Operatorn &bitvis utför en bitvis logisk AND mellan de två uttrycken och tar varje motsvarande bit för båda uttrycken. Bitarna i resultatet är inställda på 1 om och endast om båda bitarna (för den aktuella biten som löses) i indatauttrycken har värdet 1. annars är biten i resultatet inställd på 0.

Om vänster- och högeruttrycken har olika heltalsdatatyper (till exempel är det vänstra uttrycketsmallint och det högra uttrycket är int), konverteras argumentet för den mindre datatypen till den större datatypen. I det här fallet konverteras smallint-uttrycket till en int.

Examples

I följande exempel skapas en tabell med int-datatypen för att lagra värdena och infogar två värden i en rad.

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

Den här frågan utför bitvis OCH mellan kolumnerna a_int_value och b_int_value .

SELECT a_int_value & b_int_value  
FROM bitwise;  
GO  

Här är resultatuppsättningen:

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

Den binära representationen av 170 (a_int_value eller A) är 0000 0000 1010 1010. Den binära representationen av 75 (b_int_value eller B) är 0000 0000 0100 1011. Om du utför bitvis AND-åtgärden på dessa två värden genereras det binära resultatet 0000 0000 0000 1010, som är decimalt 10.

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

See Also

Expressions (Transact-SQL)
Operators (Transact-SQL)
Bitvisoperatorer (Transact-SQL)
&= (Bitvis OCH tilldelning) (Transact-SQL)
Sammansatta operatorer (Transact-SQL)