RIGHT_SHIFT (Transact SQL)

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

RIGHT_SHIFT は 2 つのパラメーターを受け取り、1 つ目のパラメーターを 2 つ目のパラメーターで指定したビット数だけ右にビットシフトして返します。

RIGHT_SHIFT 関数には >> 演算子からアクセスできます。

Transact-SQL 構文表記規則

構文

RIGHT_SHIFT ( expression_value, shift_amount )
expression_value >> shift_amount

引数

expression_value

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

shift_amount

expression_value をシフトするビット数。 shift_amount は整数にする必要があります。

戻り値の型

expression_value と同じ型を返します。

shift_amount パラメーターは bigint にキャストされます。 このパラメーターには正または負の値を指定できます。また、expression_value のデータ型のビット数より大きくすることもできます。 shift_amount が負の場合、シフトは反対方向に動作します。 たとえば、LEFT_SHIFT (expr, -1)RIGHT_SHIFT (expr, 1) と同じです。 shift_amountexpression_value のビット数よりも大きい場合、返される結果は 0 になります。

RIGHT_SHIFT は論理シフトを実行します。 ビットがシフトされた後、元の値が正か負かに関係なく、空いた位置には 0 が埋められます。

注釈

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

RIGHT_SHIFT 関数の >> メソッドは、現在、Microsoft Fabric ではサポートされていません。

次の例では、整数値 12345 が 5 ビット右シフトされます。

SELECT RIGHT_SHIFT(12345, 5);

結果は 385 です。 12345 をバイナリに変換すると、結果は 0011 0000 0011 1001 になります。 これを右に 5 シフトすると 0001 1000 0001 になります。これは 10 進で 385 です。

次の表は、シフトごとに何が起こるかを示しています。

整数値 バイナリ値 説明
12345 0011 0000 0011 1001 開始値
6172 0001 1000 0001 1100 右に 1 シフト
3086 0000 1100 0000 1110 右に 2 シフト
1543 0000 0110 0000 0111 右に 3 シフト
771 0000 0011 0000 0011 右に 4 シフト
385 0000 0001 1000 0001 右に 5 シフト

関連項目