BIT_COUNT (Transact SQL)

適用対象:SQL Server 2022 (16.x)Azure SQL DatabaseAzure SQL Managed InstanceMicrosoft Fabric の SQL 分析エンドポイントMicrosoft Fabric のウェアハウス

BIT_COUNT は 1 つのパラメーターを受け取り、そのパラメーターで 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 であり、値が 1 に設定されているビットが 17 個あるためです。

B. 整数の BIT_COUNT を計算する

次の例では、整数の 1 に設定されているビット数を計算しています。

SELECT BIT_COUNT ( 17 ) as Count;

結果は 2です。 これは、バイナリの 170001 0001 であり、値が 1 に設定されたビットは 2 つのみであるためです。

関連項目