& (位元 AND) (Transact-SQL)
在兩個整數值之間,執行位元邏輯 AND 運算。
語法
expression & expression
引數
expression
這是整數資料類型類別目錄之任何資料類型、bit、binary 或 varbinary 資料類型的任何有效運算式。expression 是當作位元運算的二進位數來處理的。
附註: |
---|
在位元運算中,只有一個 expression 可以是 binary 或 varbinary 資料類型。 |
結果類型
如果輸入值是 int,便是 int。
如果輸入值是 smallint,便是 smallint。
如果輸入值是 tinyint 或 bit,便是 tinyint。
備註
& 位元運算子會在兩個運算式之間執行位元邏輯 AND 運算,每個運算式各有一個對應的位元。只有在輸入運算式的兩個位元 (針對目前所解析的位元) 的值都是 1 時,結果中的兩個位元才會都設為 1;否則,結果中的位元便設為 0。
如果左右運算式的整數資料類型不同 (例如,左 expression 是 smallint,右 expression 是 int),較小資料類型的引數會轉換成較大的資料類型。在這個情況下,smallintexpression 會轉換成 int。
範例
下列範例會利用 int 資料類型建立資料表,來儲存值以及將兩個值插入單一資料列中。
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
這個查詢在 a_int_value
和 b_int_value
資料行之間執行位元 AND 運算。
USE tempdb;
GO
SELECT a_int_value & b_int_value
FROM bitwise;
GO
結果集如下:
-----------
10
(1 row(s) affected)
170 (a_int_value
或 A
) 的二進位表示法是 0000 0000 1010 1010
。75 (b_int_value
或 B
) 的二進位表示法是 0000 0000 0100 1011
。對這兩個值執行位元 AND 運算,會產生二進位結果 0000 0000 0000 1010
,也就是十進位的 10。
(A & B)
0000 0000 1010 1010
0000 0000 0100 1011
-------------------
0000 0000 0000 1010
請參閱
參考
運算式 (Transact-SQL)
運算子 (Transact-SQL)