BIT_COUNT (Transact SQL)
適用対象: SQL Server 2022 (16.x) Azure SQL Database Azure SQL Managed Instance Microsoft Fabric のSQL 分析エンドポイント Microsoft Fabric のウェアハウス
BIT_COUNT は 1 つのパラメーターを受け取り、そのパラメーターで 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
であり、値が 1
に設定されているビットが 17 個あるためです。
B. 整数の BIT_COUNT を計算する
次の例では、整数の 1
に設定されているビット数を計算しています。
SELECT BIT_COUNT ( 17 ) as Count;
結果は 2
です。 これは、バイナリの 17
が 0001 0001
であり、値が 1
に設定されたビットは 2 つのみであるためです。