Megosztás a következőn keresztül:


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 az első paramétert a második paraméterben megadott bitek számával jobbra tolva adja vissza.

A RIGHT_SHIFT funkció szintén elérhető az >> operátoron keresztül.

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 akár nagyobb is lehet, mint a expression_value adattípusában lévő bitek száma. 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 bitjei, a visszanyert eredmény .0

RIGHT_SHIFT logikus váltást hajt végre. A bitek elhelyezése után minden üres pozíciót betöltenek , 0függetlenül attól, hogy az eredeti érték pozitív vagy negatív volt-e.

Megjegyzések

A kezdeti megvalósításban a Distributed Query funkciók a bitmanipulációs funkciókhoz a linked serverben vagy ad hoc lekérdezésekben (OPENQUERY) nem lesz támogatva.

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

Példák

A következő példában az egész szám 12345 5 bittel jobbra tolva.

SELECT RIGHT_SHIFT(12345, 5);

Az eredmény 385. Ha a 12345-öt binárissá alakítod, akkor .0011 0000 0011 1001 Ha ezt 5-tel jobbra toljuk, akkor 0001 1000 0001az lesz, ami tizedesszámban van 385 .

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

Lásd még