Teilen über


LEFT_SHIFT (Transact SQL)

Gilt für: SQL Server 2022 (16.x) Azure SQL-Datenbank Azure SQL verwaltete Instanz SQL Analytics-Endpunkt in Microsoft Fabric Warehouse in Microsoft Fabric Warehouse in Microsoft Fabric

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

Auf die LEFT_SHIFT-Funktion kann auch über den <<-Operator zugegriffen werden.

Transact-SQL-Syntaxkonventionen

Syntax

LEFT_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.

LEFT_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 LEFT_SHIFT-Funktion wird in Microsoft Fabric derzeit nicht unterstützt.

Beispiele

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

SELECT LEFT_SHIFT(12345, 5);

Das Ergebnis ist 395040. Wenn Sie 12345 in einen Binärwert konvertieren, erhalten Sie 0011 0000 0011 1001. Wenn dieser Wert um 5 nach links verschoben wird, erhalten Sie 0110 0000 0111 0010 0000, was dezimal 395040 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
24690 0110 0000 0111 0010 Verschiebung nach links um 1
49380 1100 0000 1110 0100 Verschiebung nach links um 2
98760 0001 1000 0001 1100 1000 Verschiebung nach links um 3
und Öffnen in einem neuen Byte
197520 0011 0000 0011 1001 0000 Verschiebung nach links um 4
395040 0110 0000 0111 0010 0000 Verschiebung nach links um 5

Weitere Informationen