位元操作函數
適用於:Microsoft Fabric Microsoft網狀架構倉儲中的 SQL Server 2022 (16.x) Azure SQL 資料庫 Azure SQL 受控執行個體 SQL 分析端點
移動、擷取 (取得)、設定或計算整數或二進位值內的單一位元之類的位元操作函數,可讓您比使用個別位元更有效率地處理和儲存資料。
一個「位元」有兩個值 (1
或 0
,代表 on
或 off
,或是 true
或 false
)。 一個「位元組」是由 8 個位元的序列所組成。 SQL Server 中的位元操作函數會將位元組中最左邊的位元視為最大 (最重要的)。 對於位元操作函數,位元是從右至左編號,位元 0
位於最右邊且最小,位元 7
則位於最左邊且最大。
例如,二進位序列 00000111
是數字 7
的十進位對等值。 您可以使用 2 的次方來計算此值,如下所示:
00000111 = (2^2 + 2^1 + 2^0 = 4 + 2 + 1 = 7)
這實際上表示,雖然 SQL Server 將此值儲存為 11100000
(位元組反轉),但位元操作函數會將其視為 00000111
。
查看多個位元組時,第一個位元組 (從左至右讀取) 是最大的位元組。
您可以使用下列圖片,將 SQL Server 位元操作函數如何解譯位元和位元組運算式值以及位元位移視覺化。
int
smallint
函式
SQL Server 中有五個可用來操作位元的函數:
這五個函數都旨在對 tinyint、smallint、int、bigint、binary(n) 和 varbinary(n) 資料類型進行操作。
不支援下列類型:varchar、nvarchar、image、ntext、text、xml 和 table。
備註
在初始實作中,連結的伺服器或特定查詢 (OPENQUERY) 中不支援位元操作函數的分散式查詢功能。