Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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 |