共用方式為


BIT_COUNT (Transact SQL)

適用於: sql Server 2022 (16.x) Azure SQL 資料庫 Azure SQL 受控執行個體 Microsoft Fabric Microsoft網狀架構倉儲中的 SQL 分析端點

BIT_COUNT 會取走一個參數,並將該參數中設定為 1 的位元數傳回為 Bigint 類型。

Transact-SQL 語法慣例

語法

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。 這是因為二進位中的 0xabcdef1010 1011 1100 1101 1110 1111,而總共有 17 個位元的值設定為 1

B. 計算整數中的 BIT_COUNT

在以下範例中,會計算整數中設定為 1 的位元數。

SELECT BIT_COUNT ( 17 ) as Count;

結果為 2。 這是因為二進位中的 170001 0001,而只有 2 個位元的值設定為 1

另請參閱