STR (Transact-SQL)
Renvoie des données de type caractère converties à partir de données numériques.
Syntaxe
STR (float_expression [ , length [ ,decimal ] ] )
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 10.decimal
Représente le nombre de décimales à droite de la virgule décimale. decimal doit être inférieur ou égal à 16. Si decimal est supérieur à 16 le résultat est tronqué à seize places à droite de la virgule décimale.
Types renvoyés
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). Une expression float_expression courte est justifiée à droite dans la longueur spécifiée, et une expression float_expression longue est tronquée après le 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. Par contre, STR(1223,**2) tronque l'ensemble de résultats à **. Il est possible d'imbriquer des fonctions de chaîne.
Notes
Pour convertir des 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 l'ensemble des résultats.
------
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 l'ensemble des résultats.
--
(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 l'ensemble des résultats.
--------
123.000
(1 row(s) affected)