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

Voir aussi