&(Iloczynu (AND)) (Transact-SQL)
Wykonuje logiczną i operacji na poziomie bitowym między dwie wartości całkowitych.
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