& (Bitwise A) (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é logické AND operace mezi dvěma celočíselnou hodnotou.

Transact-SQL konvence syntaxe

Syntax

expression & expression

Arguments

expression

Libovolný platný výraz libovolného z datových typů celočíselné kategorie nebo 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ýrazbinárního nebo varbinárního datového typu.

Návratové typy

  • pokud jsou vstupní hodnoty int.
  • smallint, pokud jsou vstupní hodnoty malé.
  • tinyint , pokud jsou vstupní hodnoty tinyint nebo bit.

Remarks

& Bitový operátor provádí bitovou logickou AND logiku 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 nastaveny na 1 if a pouze v případě, že oba bity (pro aktuální bit je vyřešen) ve vstupních výrazech mají hodnotu 1. V opačném případě je bit ve výsledku nastaven na 0hodnotu .

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í 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

Tento dotaz provádí bitové operace AND mezi a_int_value sloupci a b_int_value sloupci.

SELECT a_int_value & b_int_value
FROM bitwise;
GO

Tady je soubor výsledků.

-----------
10

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é AND operace s těmito dvěma hodnotami vytvoří binární výsledek 0000 0000 0000 1010, což je desítkové číslo 10.

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