RIGHT_SHIFT (Transact SQL)
S’applique à : point de terminaison d’analyse SQL Server 2022 (16.x) Azure SQL Database Azure SQL Managed Instance SQL dans Microsoft Fabric Warehouse
RIGHT_SHIFT prend deux paramètres et retourne le premier paramètre déplacé à droite par le nombre de bits spécifiés dans le deuxième paramètre.
La fonction RIGHT_SHIFT est également accessible via l’opérateur >>
.
Conventions de la syntaxe Transact-SQL
Syntaxe
RIGHT_SHIFT ( expression_value, shift_amount )
expression_value >> shift_amount
Arguments
expression_value
Toute expression entière ou binaire qui n’est pas un Large Object (LOB).
shift_amount
Nombre de bits par lesquels expression_value doit être déplacé. shift_amount doit être de type entier.
Types de retour
Retourne le même type que expression_value.
Le paramètre shift_amount est casté en bigint. Le paramètre peut être positif ou négatif et peut également être supérieur au nombre de bits dans le type de données de expression_value. Lorsque shift_amount est négative, le déplacement fonctionne dans la direction opposée. Par exemple, LEFT_SHIFT (expr, -1)
est identique à RIGHT_SHIFT (expr, 1)
. Lorsque shift_amount est supérieur au nombre de bits dans expression_value, le résultat retourné sera 0
.
RIGHT_SHIFT effectue un déplacement logique. Une fois les bits déplacés, toutes les positions vacantes seront remplies par 0
, quelle que soit la valeur d’origine positive ou négative.
Remarques
Dans l’implémentation initiale, la fonctionnalité Requête distribuée pour les fonctions de manipulation de bits au sein de requêtes de serveur lié ou ad hoc (OPENQUERY) ne sera pas prise en charge.
La méthode >>
de la fonction RIGHT_SHIFT
n’est actuellement pas prise en charge dans Microsoft Fabric.
Exemples
Dans l’exemple suivant, la valeur entière 12345 est déplacée à droite de 5 bits.
SELECT RIGHT_SHIFT(12345, 5);
Le résultat est 385. Si vous convertissez 12345 en binaire, vous avez 0011 0000 0011 1001
. Le déplacement à droite de 5 devient 0001 1000 0001
, qui est 385
en décimale.
Le tableau suivant montre ce qui se passe pendant chaque déplacement.
Valeur entière | Valeur binaire | Description |
---|---|---|
12345 | 0011 0000 0011 1001 |
Valeur de départ |
6172 | 0001 1000 0001 1100 |
Déplacer vers la droite de 1 |
3086 | 0000 1100 0000 1110 |
Déplacer vers la droite de 2 |
1543 | 0000 0110 0000 0111 |
Déplacer vers la droite de 3 |
771 | 0000 0011 0000 0011 |
Déplacer vers la droite de 4 |
385 | 0000 0001 1000 0001 |
Déplacer vers la droite de 5 |