BIT_COUNT (Transact SQL)
適用於: sql Server 2022 (16.x) Azure SQL 資料庫 Azure SQL 受控執行個體 Microsoft Fabric Microsoft網狀架構倉儲中的 SQL 分析端點
BIT_COUNT 會取走一個參數,並將該參數中設定為 1 的位元數傳回為 Bigint 類型。
語法
BIT_COUNT ( expression_value )
引數
expression_value
任何不是大型物件 (LOB) 的整數或二進位運算式。
傳回類型
bigint
BIT_COUNT 不會在計算位元之前轉換。 這是因為相同的數字會根據資料類型,而在二進位表示中有不同數量的一。
舉例來說,SELECT BIT_COUNT (CAST (-1 as smallint))
和 SELECT BIT_COUNT (CAST (-1 as int))
會分別傳回 16 和 32。 因為 -1
的二進位表示可能會根據資料類型而有不同數量設為 1 的位元,所以是預期的行為。
備註
在初始實作中,連結的伺服器或特定查詢 (OPENQUERY) 中不支援位元操作函式的分散式查詢功能。
範例
A. 計算二進位值中的 BIT_COUNT
在以下範例中,會計算二進位值中設定為 1
的位元數。
SELECT BIT_COUNT ( 0xabcdef ) as Count;
結果為 17
。 這是因為二進位中的 0xabcdef
為 1010 1011 1100 1101 1110 1111
,而總共有 17 個位元的值設定為 1
。
B. 計算整數中的 BIT_COUNT
在以下範例中,會計算整數中設定為 1
的位元數。
SELECT BIT_COUNT ( 17 ) as Count;
結果為 2
。 這是因為二進位中的 17
為 0001 0001
,而只有 2 個位元的值設定為 1
。