STR (Transact-SQL)

S’applique à : SQL Server (toutes les versions prises en charge) Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

Renvoie des données de type caractère converties à partir de données numériques. Les données caractères sont justifiées à droite, avec une longueur et une précision décimale spécifiées.

Topic link iconConventions de la syntaxe Transact-SQL

Syntaxe

STR ( float_expression [ , length [ , decimal ] ] )  

Notes

Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 et versions antérieures, consultez Versions antérieures de la documentation.

Arguments

float_expression
Expression de type de données numérique approché (float) avec une virgule décimale.

length
Longueur totale. Inclut la virgule décimale, le signe, les chiffres et les espaces. La valeur par défaut est de 10.

decimal
Représente le nombre de décimales à droite de la virgule décimale. La valeur decimal doit être inférieure ou égale à 16. Si la valeur decimal est supérieure à 16, le résultat est tronqué à seize chiffres à droite de la virgule décimale.

Types de retour

varchar

Notes

Si elles sont spécifiées, les valeurs des paramètres length et decimal dans STR doivent être positives. Le nombre est arrondi par défaut à un entier ou si le paramètre décimal est 0. La longueur spécifiée doit être supérieure ou égale à la partie du nombre située avant la virgule décimale plus le signe du nombre (le cas échéant). Un argument float_expression court est justifié à droite selon la longueur spécifiée, et un argument float_expression long est tronqué au nombre spécifié de décimales. Par exemple, STR(12, 10) donne 12 comme résultat. Il est justifié à droite dans le jeu de résultats. Toutefois, STR(1223, 2) tronque le jeu de résultats à **. Il est possible d'imbriquer des fonctions de chaîne.

Notes

Pour convertir en données Unicode, utilisez STR dans une fonction de conversion CONVERT ou CAST.

Exemples

L'exemple suivant convertit une expression constituée de cinq chiffres et d'une virgule décimale en chaîne de caractères à six positions. La partie fractionnaire du nombre est arrondie à une décimale.

SELECT STR(123.45, 6, 1);  
GO  

Voici le jeu de résultats obtenu.

------  
 123.5  
  
(1 row(s) affected)  

Lorsque l'expression a une longueur supérieure à la longueur spécifiée, la chaîne renvoie ** pour la longueur spécifiée.

SELECT STR(123.45, 2, 2);  
GO  

Voici le jeu de résultats obtenu.

--  
**  
  
(1 row(s) affected)  

Même lorsque des données numériques sont imbriquées dans STR, le résultat correspond à des données de type caractère avec le format spécifié.

SELECT STR (FLOOR (123.45), 8, 3);
GO  

Voici le jeu de résultats obtenu.

--------  
 123.000  
  
(1 row(s) affected)  

Voir aussi

CAST et CONVERT (Transact-SQL)
FORMAT (Transact-SQL)
Fonctions de chaîne (Transact-SQL)