RIGHT_SHIFT (Transact SQL)

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

RIGHT_SHIFT 接受兩個參數,並傳回按第二個參數中指定位元數向右移位的第一個參數。

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_amount 大於 expression_value 中的位元數時,傳回的結果會是 0

RIGHT_SHIFT 會執行邏輯移位。 位元移位之後,不論原始值是正數還是負數,任何空置位置都會填滿 0

備註

在初始實作中,連結的伺服器或特定查詢 (OPENQUERY) 中不支援位元操作函式的分散式查詢功能。

>> Microsoft Fabric 目前不支援函式的方法RIGHT_SHIFT

範例

在下列範例中,整數值 12345 向右移 5 個位元。

SELECT RIGHT_SHIFT(12345, 5);

結果為 385。 若將 12345 轉換為二進位,就會得到 0011 0000 0011 1001。 將其向右移 5 位會變成 0001 1000 0001,即十進位的 385

下列資料表示範每次移位發生的情況。

整數值 二進位值 Description
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 位

另請參閱