Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Gäller för: SQL Server 2022 (16.x)
Azure SQL Database
Azure SQL Managed Instance
SQL analytics endpoint in Microsoft Fabric
Warehouse in Microsoft Fabric SQL
database in Microsoft Fabric
LEFT_SHIFT tar två parametrar och returnerar den första parametern bitförskjuten till vänster med det antal bitar som anges i den andra parametern.
Funktionen LEFT_SHIFT är också tillgänglig via operatorn << .
Transact-SQL syntaxkonventioner
Syntax
LEFT_SHIFT ( expression_value , shift_amount )
expression_value << shift_amount
Arguments
expression_value
Alla heltals- eller binäruttryck som inte är ett stort objekt (LOB).
shift_amount
Antalet bitar med vilka expression_value ska flyttas. shift_amount måste vara av heltalstyp.
Returtyper
Returnerar samma typ som expression_value.
Den shift_amount parametern kastas till en bigint. Parametern kan vara positiv eller negativ och kan också vara större än antalet bitar i datatypen för expression_value. När shift_amount är negativ sker skiftet i motsatt riktning. Till exempel är LEFT_SHIFT (expr, -1) samma som RIGHT_SHIFT (expr, 1). När shift_amount är större än antalet bitar i expression_value returneras 0resultatet .
LEFT_SHIFT utför ett logiskt skifte. När bitar har flyttats fylls alla lediga tjänster av 0, oavsett om det ursprungliga värdet var positivt eller negativt.
Anmärkningar
I den inledande implementeringen stöds inte funktioner för distribuerad fråga för bitmanipuleringsfunktionerna i den länkade servern eller ad hoc-frågor (OPENQUERY).
Metoden << för LEFT_SHIFT funktionen stöds för närvarande inte i Microsoft Fabric.
Examples
I följande exempel lämnas heltalsvärdet 12 345 vänsterförskjutet med 5 bitar.
SELECT LEFT_SHIFT(12345, 5);
Resultatet är 395 040. Om du konverterar 12 345 till binärt har 0011 0000 0011 1001du . Om du flyttar det här värdet åt vänster med 5 bitar blir 0110 0000 0111 0010 0000det , vilket är 395040 i decimaltal.
Följande tabell visar vad som händer under varje skift.
| Heltalsvärde | Binärt värde | Description |
|---|---|---|
12345 |
0011 0000 0011 1001 |
Startvärde |
24690 |
0110 0000 0111 0010 |
Flytta vänster med 1 |
49380 |
1100 0000 1110 0100 |
Flytta vänster med 2 |
98760 |
0001 1000 0001 1100 1000 |
Flytta åt vänster med 3 och öppna till en ny byte |
197520 |
0011 0000 0011 1001 0000 |
Flytta vänster med 4 |
395040 |
0110 0000 0111 0010 0000 |
Flytta vänster med 5 |