Megosztás:


LEFT_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

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

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

Transact-SQL szintaxis konvenciók

Szemantika

LEFT_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

LEFT_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 LEFT_SHIFT jelenleg nem támogatott a Microsoft Fabricben.

Példák

Az alábbi példában a 12 345-ös egész szám balról 5 bitel van eltolva.

SELECT LEFT_SHIFT(12345, 5);

Az eredmény 395 040. Ha a 12 345-öt binárissá konvertálja, akkor a 0011 0000 0011 1001. Ha ezt az értéket 5 bitel balra tolja, az 395040 decimális érték lesz0110 0000 0111 0010 0000.

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
24690 0110 0000 0111 0010 Váltás balra 1-re
49380 1100 0000 1110 0100 Két fővel balra
98760 0001 1000 0001 1100 1000 Shift balra 3-tal, és nyisson meg egy új bájtot
197520 0011 0000 0011 1001 0000 Négy emberrel balra
395040 0110 0000 0111 0010 0000 Átmozdulás 5-tel balra