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
RIGHT_SHIFT neemt twee parameters en retourneert de eerste parameter bit-shifted rechts door het aantal bits dat is opgegeven in de tweede parameter.
De RIGHT_SHIFT functie is ook toegankelijk via de >> operator.
Transact-SQL syntaxis-conventies
Syntaxis
RIGHT_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 gegevenstype 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, wordt 0het resultaat geretourneerd.
RIGHT_SHIFT voert een logische verschuiving uit. Nadat bits zijn verschoven, worden alle beschikbare posities gevuld 0door, ongeacht of de oorspronkelijke waarde positief of negatief was.
Opmerkingen
In de eerste implementatie worden gedistribueerde queryfunctionaliteit voor de bitmanipulatiefuncties binnen gekoppelde server of ad-hocquery's (OPENQUERY) niet ondersteund.
De >> methode voor de RIGHT_SHIFT functie wordt momenteel niet ondersteund in Microsoft Fabric.
Voorbeelden
In het volgende voorbeeld wordt de gehele waarde 12.345 met de rechtermuisknop verschoven door 5 bits.
SELECT RIGHT_SHIFT(12345, 5);
Het resultaat is 385. Als u 12.345 converteert naar binair, hebt 0011 0000 0011 1001u . Als u deze waarde met 5 bits 0001 1000 0001naar rechts verschuift, wordt 385 dit een decimaal getal.
De volgende tabel laat zien wat er tijdens elke dienst gebeurt.
| Integerwaarde | Binaire waarde | Description |
|---|---|---|
12345 |
0011 0000 0011 1001 |
Startwaarde |
6172 |
0001 1000 0001 1100 |
Schuif naar rechts met 1 |
3086 |
0000 1100 0000 1110 |
Schuif 2 naar rechts |
1543 |
0000 0110 0000 0111 |
Schuif 3 keer naar rechts |
771 |
0000 0011 0000 0011 |
Shift 4 keer naar rechts |
385 |
0000 0001 1000 0001 |
Shift naar rechts om 5 uur |