Megosztás:


RIGHT_SHIFT (Transact SQL)

Vonatkozik a következőkre: SQL Server 2022 (16.x) Azure SQL DatabaseAzure SQL Managed InstanceSQL analytics endpoint in Microsoft FabricWarehouse in Microsoft Fabric SQLdatabase in Microsoft Fabric

RIGHT_SHIFT két paramétert vesz fel, és a második paraméterben megadott bitek számával jobbra eltolt első paramétert adja vissza.

A RIGHT_SHIFT függvény az operátoron keresztül >> is elérhető.

Transact-SQL szintaxis konvenciók

Szemantika

RIGHT_SHIFT ( expression_value , shift_amount )
expression_value >> shift_amount

Arguments

expression_value

Bármely egész szám vagy bináris kifejezés, amely nem nagy objektum (LOB).

shift_amount

Hány bittel kell expression_value eltolni. shift_amount egész szám típusnak kell lennie.

Visszatérési típusok

Ugyanazt a típust adja vissza, mint a expression_value.

A shift_amount paramétert bigintre vetjük. A paraméter lehet pozitív vagy negatív, és nagyobb is lehet, mint a bitek száma a expression_value adattípusában. Ha shift_amount negatív, az eltolás az ellenkező irányba működik. Például LEFT_SHIFT (expr, -1) ugyanaz, mint RIGHT_SHIFT (expr, 1). Ha shift_amount nagyobb, mint a expression_value bitjeinek száma, a visszaadott eredmény .0

RIGHT_SHIFT logikai eltolódást hajt végre. A bitek eltolása után a betöltetlen pozíciókat a rendszer kitölti 0, függetlenül attól, hogy az eredeti érték pozitív vagy negatív volt-e.

Megjegyzések

A kezdeti implementációban a csatolt kiszolgálón belüli bitmanipulációs függvények elosztott lekérdezési funkciói vagy az alkalmi lekérdezések (OPENQUERY) nem támogatottak.

A >> függvény metódusa RIGHT_SHIFT jelenleg nem támogatott a Microsoft Fabricben.

Példák

Az alábbi példában a 12 345 egész szám értéke 5 bitel van jobbra eltolva.

SELECT RIGHT_SHIFT(12345, 5);

Az eredmény 385. Ha a 12 345-öt binárissá konvertálja, akkor a 0011 0000 0011 1001. Ha ezt az értéket 5 bitel jobbra tolja, az 385 decimális érték lesz0001 1000 0001.

Az alábbi táblázat bemutatja, mi történik minden műszak során.

Egész számérték Bináris érték Description
12345 0011 0000 0011 1001 Kezdeti érték
6172 0001 1000 0001 1100 Jobbra váltás 1-re
3086 0000 1100 0000 1110 Jobbra tolj 2-vel
1543 0000 0110 0000 0111 Jobbra tolj 3-cal
771 0000 0011 0000 0011 Húzz jobbra 4-re
385 0000 0001 1000 0001 Jobbra 5-kor