Dela via


^ (Bitwise exklusivt ELLER) (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 exklusiv OR-å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

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

Result Types

int om indatavärdena är int.

smallint om indatavärdena är småint.

tinyint om indatavärdena är småint.

Remarks

Bitvisoperatorn ^ utför en bitvis logisk exklusiv ELLER mellan de två uttrycken och tar varje motsvarande bit för båda uttrycken. Bitarna i resultatet är inställda på 1 om endera (men inte båda) bitar (för den aktuella biten som löses) i indatauttrycken har värdet 1. Om båda bitarna är 0 eller båda bitarna är 1 rensas biten i resultatet till värdet 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 datatypen int för att lagra de ursprungliga 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  

Följande fråga utför den bitvis exklusiva OR på kolumnerna a_int_value och b_int_value .

SELECT a_int_value ^ b_int_value  
FROM bitwise;  
GO  

Här är resultatuppsättningen:

-----------   
225           
  
(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 den bitvis exklusiva OR-åtgärden på dessa två värden genereras det binära resultatet 0000 0000 1110 0001, som är decimalt 225.

(A ^ B)     
         0000 0000 1010 1010  
         0000 0000 0100 1011  
         -------------------  
         0000 0000 1110 0001  

See Also

Expressions (Transact-SQL)
Operators (Transact-SQL)
Bitvisoperatorer (Transact-SQL)
^= (Bitvis exklusiv eller tilldelning) (Transact-SQL)
Sammansatta operatorer (Transact-SQL)