RIGHT_SHIFT (Transact SQL)

Gilt für:SQL Server 2022 (16.x) Azure SQL-DatenbankAzure SQL Managed InstanceSQL Analytics-Endpunkt in Microsoft FabricWarehouse in Microsoft Fabric

RIGHT_SHIFT akzeptiert zwei Parameter und gibt den ersten Parameter um die Anzahl der im zweiten Parameter angegebenen Bits bitverschoben nach rechts zurück.

Auf die RIGHT_SHIFT-Funktion kann auch über den >>-Operator zugegriffen werden.

Transact-SQL-Syntaxkonventionen

Syntax

RIGHT_SHIFT ( expression_value, shift_amount )
expression_value >> shift_amount

Argumente

expression_value

Beliebiger ganzzahliger oder binärer Ausdruck, der kein großes Objekt (LOB) ist.

shift_amount

Die Anzahl der Bits, um die expression_value verschoben werden soll. shift_amount muss ein Ganzzahltyp sein.

Rückgabetypen

Gibt denselben Typ wie expression_value zurück.

Der Parameter shift_amount wird in einen bigint umgewandelt. Der Parameter kann positiv oder negativ sein und kann auch größer als die Anzahl von Bits im Datentyp von expression_value sein. Wenn shift_amount negativ ist, erfolgt die Verschiebung in umgekehrter Richtung. LEFT_SHIFT (expr, -1) entspricht beispielsweise RIGHT_SHIFT (expr, 1). Wenn shift_amount größer als die Anzahl der Bits in expression_value ist, lautet das zurückgegebene Ergebnis 0.

RIGHT_SHIFT führt eine logische Verschiebung durch. Nachdem Bits verschoben wurden, werden alle leeren Positionen mit 0 aufgefüllt, unabhängig davon, ob der ursprüngliche Wert positiv oder negativ war.

Bemerkungen

In der anfänglichen Implementierung werden die Funktionen der „Verteilten Abfrage“ für die Funktionen zur Bitmanipulation innerhalb des verknüpften Servers oder in Ad-hoc-Abfragen (OPENQUERY) nicht unterstützt.

Die >> -Methode für die RIGHT_SHIFT-Funktion wird in Microsoft Fabric derzeit nicht unterstützt.

Beispiele

Im folgenden Beispiel wird der ganzzahlige Wert 12345 um 5 Bits nach rechts verschoben.

SELECT RIGHT_SHIFT(12345, 5);

Das Ergebnis ist 385. Wenn Sie 12345 in einen Binärwert konvertieren, erhalten Sie 0011 0000 0011 1001. Wenn dieser Wert um 5 nach rechts verschoben wird, erhalten Sie 0001 1000 0001, was dezimal 385 ist.

In der folgenden Tabelle wird veranschaulicht, was während der jeweiligen Verschiebung geschieht.

Ganzzahliger Wert Binärwert BESCHREIBUNG
12345 0011 0000 0011 1001 Anfangswert
6172 0001 1000 0001 1100 Verschiebung nach rechts um 1
3086 0000 1100 0000 1110 Verschiebung nach rechts um 2
1543 0000 0110 0000 0111 Verschiebung nach rechts um 3
771 0000 0011 0000 0011 Verschiebung nach rechts um 4
385 0000 0001 1000 0001 Verschiebung nach rechts um 5

Siehe auch