Udostępnij za pośrednictwem


&(Iloczynu (AND)) (Transact-SQL)

Wykonuje logiczną i operacji na poziomie bitowym między dwie wartości całkowitych.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

expression & expression

Argumenty

  • expression
    Wszelkie obowiązuje wyrażenie z dowolnego typu danych kategorię typu danych integer lub bit, lub binary lub varbinary typów danych.expressionjest traktowana jako liczbę dwójkową dla operacja bitowa.

    Ostrzeżenie

    W operacja bitowa, tylko jeden expression może być albo binary lub varbinary typu danych.

Typy wyników

intJeśli wartości wejściowe są int.

smallintJeśli wartości wejściowe są smallint.

tinyintJeśli wartości wejściowe są tinyint lub bit.

Uwagi

& Bitowe operator wykonuje logiczną operację AND między dwoma wyrażeniami, uwzględniając każdy odpowiedni bit dla obu wyrażeń.Usługa bits w wyniku są zestaw na 1, gdy i tylko wtedy, gdy oba bity (dla bieżącego bit zamieniana) w danych wejściowych wyrażenia mają wartość 1; w przeciwnym razie bit w wyniku jest zestaw na wartość 0.

Jeśli wyrażenia lewego i prawego mają całkowitą różnych typów danych (na przykład, po lewej stronie expression jest smallint i prawo do expression jest int), argument mniejszy typ danych jest konwertowana na większy typu danych.W tym przypadek smallintexpression jest konwertowany na int.

Przykłady

Poniższy przykład tworzy tabela przy użyciu int Typ do przechowywania wartości danych i wstawia dwie wartości w jednym wierszu.

USE tempdb;
GO
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES 
      WHERE TABLE_NAME = 'bitwise')
   DROP TABLE bitwise;
GO
CREATE TABLE bitwise
( 
a_int_value int NOT NULL,
b_int_value int NOT NULL
);
GO
INSERT bitwise VALUES (170, 75);
GO

Ta kwerenda wykonuje logiczną i między a_int_value i b_int_value kolumny.

USE tempdb;
GO
SELECT a_int_value & b_int_value
FROM bitwise;
GO

Oto zestaw wyników:

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

(1 row(s) affected)

Reprezentacja binarna 170 (a_int_value lub A) jest 0000 0000 1010 1010.Reprezentacja binarna 75 (b_int_value lub B) jest 0000 0000 0100 1011.Wykonuje logiczną operację AND na tych dwóch wartości daje wynik binary 0000 0000 0000 1010, który jest dziesiętnej liczby 10.

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