Sdílet prostřednictvím


^ (bitwise exclusive OR) (Transact-SQL)

Platí pro:SQL ServerAzure SQL DatabaseSpravovaná instance Azure SQLAzure Synapse AnalyticsAnalytics Platform System (PDW)Koncový bod analýzy SQL v Microsoft FabricSklad v Microsoft FabricDatabáze SQL v Microsoft Fabric

Provede bitové exkluzivní operace OR mezi dvěma celočíselnou hodnotou.

Transact-SQL konvence syntaxe

Syntax

expression ^ expression  

Arguments

expression
Je libovolný platný výraz některého z datových typů celočíselné kategorie datového typu, bitu nebo binárního nebo varbinárního datového typu. výraz je považován za binární číslo pro bitovou operaci.

Note

V bitové operaci může být pouze jeden výrazz binárního nebo varbinárního datového typu.

Typy výsledků

pokud jsou vstupní hodnoty int.

smallint, pokud jsou vstupní hodnoty malé.

tinyint pokud jsou vstupní hodnoty tinyint.

Remarks

^ Bitový operátor provádí bitový logický operátor OR mezi těmito dvěma výrazy, přičemž každý odpovídající bit pro oba výrazy. Bity ve výsledku jsou ve vstupních výrazech nastaveny na hodnotu 1, pokud mají v vstupních výrazech hodnotu 1 (ale ne obě). Pokud jsou oba bity 0 nebo oba bity jsou 1, bit ve výsledku se vymaže na hodnotu 0.

Pokud výrazy vlevo a vpravo mají různé celočíselné datové typy (například levý výraz je malý a pravý výraz je int), je argument menšího datového typu převeden na větší datový typ. V tomto případě se malýintvýraz převede na int.

Examples

Následující příklad vytvoří tabulku pomocí datového typu int k uložení původních hodnot a vloží dvě hodnoty do jednoho řádku.

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

Následující dotaz provede bitové výhradní or a_int_value u sloupců a b_int_value sloupců.

SELECT a_int_value ^ b_int_value  
FROM bitwise;  
GO  

Tady je sada výsledků:

-----------   
225           
  
(1 row(s) affected)  

Binární reprezentace 170 (a_int_value nebo A) je 0000 0000 1010 1010. Binární reprezentace 75 (b_int_value nebo B) je 0000 0000 0100 1011. Provedení bitové exkluzivní operace OR na těchto dvou hodnotách vytvoří binární výsledek 0000 0000 1110 0001, což je desítkové číslo 225.

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

Viz také

Výrazy (Transact-SQL)
Operátory (Transact-SQL)
Bitové operátory (Transact-SQL)
^= (Bitové výhradní přiřazení OR) (Transact-SQL)
Složené operátory (Transact-SQL)