位元運算子 (Transact-SQL)
適用於:sql Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Platform System (PDW) SQL 分析端點在 Microsoft Fabric SQL 資料庫中Microsoft網狀架構倉儲Microsoft網狀架構
位元運算子會在整數資料類型類別目錄之任何資料類型的兩個運算式之間,執行位元操作。
位元運算子可將兩個整數值轉換成二進位位元、在每個位元上執行 AND
、OR
或 NOT
運算、產生結果。 然後將結果轉換成整數。
例如,整數 170
會轉換成二進位 1010 1010
。
整數 75
會轉換成二進位 0100 1011
。
運算子 | 位元數學 |
---|---|
AND 如果在任何位置的位元皆為 1 ,則結果為 1 。 |
1010 1010 = 1700100 1011 = 75----------------- 0000 1010 = 10 |
OR 如果在任何位置的其中一個位元為 1 ,則結果為 1 。 |
1010 1010 = 1700100 1011 = 75----------------- 1110 1011 = 235 |
NOT 反轉每個位元位置的位元值。 |
1010 1010 = 170----------------- 0101 0101 = 85 |
下列文章提供有關資料庫引擎中可用位元運算子的詳細資訊:
SQL Server 2022 (16.x) 引進下列位元運算子:
位元運算子的運算元可以是整數或二進位字串資料類型類別目錄 (image 資料類型除外) 的任何資料類型,但不可以兩個運算元都是二進位字串資料類型類別目錄的任何資料類型。 下表顯示支援的運算元資料類型。
左運算元 | 右運算元 |
---|---|
binary | int、smallint 或 tinyint |
bit | int、smallint、tinyint 或 bit |
bigint | bigint、int、smallint、tinyint、binary 或 varbinary |
int | int、smallint、tinyint、binary 或 varbinary |
smallint | int、smallint、tinyint、binary 或 varbinary |
tinyint | int、smallint、tinyint、binary 或 varbinary |
varbinary | int、smallint 或 tinyint |