SQL語法
在 Transact-SQL 語句中,將某個給定的整型值轉換為二進制表達式,對其執行按位邏輯非運算。
語法
expression
參數
expression
是任何有效的 Microsoft® SQL Server™ 表達式(表達式必須由整數數據類型分類中的任何數據類型組成,或者由 binary 或 varbinary 數據類型組成)。expression 是一個經過處理並轉換為二進制數字以便進行位運算的整數。
結果類型
如果輸入值為 int,則返回 int;如果輸入值為 SMALLINT,則返回 smallint;如果輸入值為 TINYINT,則返回 tinyint;或者如果輸入值為 bit,則返回 bit。
注釋
通過從兩個表達式取對應的位,位運算符 ~ 對 expression 執行按位邏輯非運算。如果 expression 中某個位(正在被解析的當前位)的值為 0,則結果中該位的值被設定為 1;否則,結果中該位的值將被清除為 0位運算符 ~ 只可以用在整數類型分類的列上。
示例
下面的示例創建一個具有 int 數據類型的表以顯示值,並將該表放入一行中。
USE master
GO
IF EXISTS ( SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'bitwise')
DROP TABLE bitwise
GO
CREATE TABLE bitwise
(
a_int_value tinyint NOT NULL,
b_int_value tinyint NOT NULL
)
GO
INSERT bitwise VALUES (170, 75)
GO
下面的查詢在 a_int_value 列和 b_int_value 列上執行按位 NOT 運算。
USE MASTER
GO
SELECT ~ a_int_value, ~ b_int_value
FROM bitwise
下面是結果集:
--- ---
85 180
(1 row(s) affected)
170(a_int_value 或 A,如下所示)的二進制表示為 0000 0000 1010 1010。在該值上執行按位 NOT 運算所產生的二進制結果是 0000 0000 0101 0101,即十進制數 85。
(~A)
0000 0000 1010 1010
-------------------
0000 0000 0101 0101