Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: 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 neemt twee parameters en geeft de eerste parameter terug die bitverschoven is door het aantal bits dat in de tweede parameter is gespecificeerd.
De LEFT_SHIFT functie is ook toegankelijk via de << operator.
Transact-SQL syntaxis-conventies
Syntaxis
LEFT_SHIFT ( expression_value, shift_amount )
expression_value << shift_amount
Arguments
expression_value
Elke gehele of binaire expressie die geen groot object is (LOB).
shift_amount
Het aantal bits waarmee expression_value moet worden verschoven. shift_amount moet een geheel getal zijn.
Retourtypen
Geeft hetzelfde type terug als expression_value.
De shift_amount parameter wordt omgezet naar een bigint. De parameter kan positief of negatief zijn, en kan ook groter zijn dan het aantal bits in het datatype van expression_value. Wanneer shift_amount negatief is, werkt de verschuiving in de tegenovergestelde richting.
LEFT_SHIFT (expr, -1) is bijvoorbeeld hetzelfde als RIGHT_SHIFT (expr, 1). Wanneer shift_amount groter is dan het aantal bits in expression_value, zal het resultaat dat wordt teruggegeven zijn 0.
LEFT_SHIFT voert een logische omslag uit. Nadat bits zijn verschoven, worden alle openstaande posities ingevuld door 0, ongeacht of de oorspronkelijke waarde positief of negatief was.
Opmerkingen
In de eerste implementatie wordt de functionaliteit Distributed Query voor de bitmanipulatiefuncties binnen gekoppelde servers of ad hoc queries (OPENQUERY) niet ondersteund.
De << methode voor de LEFT_SHIFT functie wordt momenteel niet ondersteund in Microsoft Fabric.
Voorbeelden
In het volgende voorbeeld is de gehele waarde 12345 met 5 bits naar links verschoven.
SELECT LEFT_SHIFT(12345, 5);
Het resultaat is 395040. Als je 12345 omzet naar binair, heb 0011 0000 0011 1001je . Als je dit naar links verschuift met 5, wordt 0110 0000 0111 0010 0000dit , wat in decimaal is 395040 .
De volgende tabel laat zien wat er tijdens elke dienst gebeurt.
| Integerwaarde | Binaire waarde | Description |
|---|---|---|
| 12345 | 0011 0000 0011 1001 |
Startwaarde |
| 24690 | 0110 0000 0111 0010 |
Shift links door 1 |
| 49380 | 1100 0000 1110 0100 |
Shift naar links met 2 |
| 98760 | 0001 1000 0001 1100 1000 |
Shift naar links met 3, en openen in een nieuwe byte |
| 197520 | 0011 0000 0011 1001 0000 |
Shift left by 4 |
| 395040 | 0110 0000 0111 0010 0000 |
Shift links met 5 uur |
Zie ook
- RIGHT_SHIFT (Transact SQL)
- SET_BIT (Transact SQL)
- GET_BIT (Transact SQL)
- BIT_COUNT (Transact SQL)
- Bitmanipulatiefuncties