在兩個整型值之間執(zhí)行按位邏輯與運算。
expression & expression
expression
是任何有效的 Microsoft® SQL Server™ 表達式,必須由整數(shù)數(shù)據(jù)類型分類中的任何數(shù)據(jù)類型組成。expression 是經(jīng)過處理并轉(zhuǎn)換為二進制數(shù)字以便進行位運算的整型參數(shù)。
如果輸入值為 int,則返回 int;如果輸入值為 smallint,則返回 smallint;或者如果輸入值為 tinyint,則返回 tinyint。
通過從兩個表達式取對應(yīng)的位,位運算符 & 在兩個表達式之間執(zhí)行按位邏輯與運算。只有當(dāng)輸入表達式中兩個位(正在被解析的當(dāng)前位)的值都為 1 時,結(jié)果中的位才被設(shè)置為 1;否則,結(jié)果中的位被設(shè)置為 0。
位運算符 & 只可以用在具有整型數(shù)據(jù)類型分類的表達式上。
如果左右表達式的整型數(shù)據(jù)類型不同(例如,左邊 expression 的數(shù)據(jù)類型是 smallint,右邊 expression 的數(shù)據(jù)類型是 int),那么將較小的數(shù)據(jù)類型的參數(shù)轉(zhuǎn)換為較大的數(shù)據(jù)類型。在該示例中,數(shù)據(jù)類型為 smallint 的 expression 被轉(zhuǎn)換為 int 數(shù)據(jù)類型。
下面的示例創(chuàng)建一個具有 int 數(shù)據(jù)類型的表以顯示值,并將該表放入一行中。
USE master
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 列上執(zhí)行按位 AND 運算。
USE MASTER
GO
SELECT a_int_value & b_int_value
FROM bitwise
GO
下面是結(jié)果集:
-----------
10
(1 row(s) affected)
170(a_int_value 或 A,如下所示 )的二進制表示為 0000 0000 1010 1010。75(b_int_value 或 B,如下所示)的二進制表示為 0000 0000 0100 1011。在這兩個值之間執(zhí)行按位 AND 運算所產(chǎn)生的二進制結(jié)果是 0000 0000 0000 1010,即十進制數(shù) 10。
(A & B)
0000 0000 1010 1010
0000 0000 0100 1011
-------------------
0000 0000 0000 1010
相關(guān)文章