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