SET_BIT (Transact SQL)

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

SET_BIT は、bit_offset によって定義されたビットで expression_value のオフセットを返します。 ビット値は、既定では 1 であり、bit_value で設定します。

Transact-SQL 構文表記規則

構文

SET_BIT ( expression_value, bit_offset ) 
SET_BIT ( expression_value, bit_offset, bit_value )

引数

expression_value

ラージ オブジェクト (LOB) ではない任意の整数またはバイナリ式。

bit_offset

任意の整数。

戻り値の型

expression_value と同じ型。

bit_offset パラメーターを使って、設定するデータの n 番目のビットを示します。 整数型では、0 番目のビットは最下位ビットです。 バイナリ型では、0 番目のビットは右端のバイトの最下位ビットです。

bit_value では、整数またはビットを指定できます。 ただし、データ型に関係なく、bit_value の有効な値は 1 と 0 のみです。 bit_value が 1、0、または null でない場合、SET_BIT はエラーをスローします。

bit_offset が負であるか、データ型の最後のビットより大きい場合、SET_BIT はエラーをスローします。

注釈

この最初の実装では、リンク サーバー内のビット操作関数またはアドホック クエリ (OPENQUERY) に対する分散クエリ機能はサポートされません。

A. SET_BIT を使って値を変更する

この例では、3 番目のビット (オフセット 2 の位置、0 から始まるインデックス) が 1 に設定されます。

SELECT SET_BIT ( 0x00, 2 ) as VARBIN1;

結果は 0x04です。 これは、0x00expression_value0000 に変換されるためです。 SET_BIT は、その 3 番目のビット (オフセット 2) を 1 に変更して、0100 にします。 その後、このバイナリ値は、16 進表現の 4 として返されます。

B. SET_BIT を使ってカスタムの bit_value で値を変更する

この例では、bit_value は既定値の 1 ではなく 0 に設定されます。

SELECT SET_BIT ( 0xabcdef, 0, 0 ) as VARBIN2;

結果は 0xABCDEEです。 expression_value はバイナリ (1010 1011 1100 1101 1110 1111) に変換されます。 SET_BIT は最初のビットを 0 に変更し、結果は 16 進形式で返されます。

関連項目