^ (Bitwise exclusive OR) (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példányAzure Synapse AnalyticsElemzési platformrendszer (PDW)SQL Analytics-végpont a Microsoft FabricbenRaktár a Microsoft FabricbenSQL-adatbázis a Microsoft Fabricben

Bitenkénti logikai kizárólagos OR műveletet hajt végre két egész érték között.

Transact-SQL szintaxis konvenciók

Syntax

expression ^ expression

Arguments

expression

Az egész szám adattípus kategóriájának vagy bitjének, illetve a bináris vagy varbináris adattípusok bármelyikének érvényes kifejezése. a bitenkénti művelet bináris számként kezeli.

Note

Egy bitenkénti műveletben csak egy kifejezés lehet bináris vagy varbináris adattípusú.

Visszatérési típusok

int , ha a bemeneti értékek int.

kicsi, ha a bemeneti értékek kicsik.

tinyint , ha a bemeneti értékek aprók.

Remarks

A ^ bitenkénti operátor a két kifejezés között bitenkénti logikai kizárólagos OR műveletet hajt végre, és mindkét kifejezéshez mindegyik megfelelő bitet figyelembe veszi. Az eredmény bitjei akkor 1 vannak beállítva, ha a bemeneti kifejezések 1egyik (de nem mindkét) bitje (az aktuális bit feloldása esetén) értéke . Ha mindkét bit vagy 0 mindkét bit, 1akkor az eredményben szereplő bit egy értékre 0lesz törölve.

Ha a bal és a jobb oldali kifejezés különböző egész adattípusokkal rendelkezik (például a bal oldali kifejezéskicsi , a jobb oldali kifejezéspedig int), a kisebb adattípus argumentuma nagyobb adattípussá lesz konvertálva. Ebben az esetben a kisbetűskifejezésintgé alakul át.

Examples

Az alábbi példa egy táblázatot hoz létre az int adattípussal az eredeti értékek tárolásához, és két értéket szúr be egy sorba.

CREATE TABLE bitwise
(
    a_int_value INT NOT NULL,
    b_int_value INT NOT NULL
);
GO

INSERT bitwise
VALUES (170, 75);
GO

Az alábbi lekérdezés a bitenkénti kizárólagos OR műveletet hajtja végre az oszlopokon és b_int_value az a_int_value oszlopokon.

SELECT a_int_value ^ b_int_value
FROM bitwise;
GO

Itt van az eredmények összessége.

-----------
225

A 170 (a_int_value vagy A) bináris ábrázolása az 0000 0000 1010 1010. A 75 (b_int_value vagy B) bináris ábrázolása az 0000 0000 0100 1011. Ha a bitenkénti kizárólagos OR műveletet ezen a két értéken hajtja végre, a bináris eredményt 0000 0000 1110 0001hozza létre, amely decimális 225.

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