Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

4 fonctions pour formater un nombre à 2 décimales dans SQL Server

Lorsque vous utilisez T-SQL avec SQL Server, nous pouvons formater les nombres à l'aide de différentes méthodes, en fonction du format souhaité.

Vous trouverez ci-dessous quatre fonctions qui peuvent être utilisées pour formater un nombre à deux décimales dans SQL Server.

Le CAST() Fonction

La façon la plus évidente de le faire est de convertir le nombre en un type décimal. Deux fonctions qui peuvent le faire pour nous sont CAST() et CONVERT() .

Voici un exemple d'utilisation de CAST() :

SELECT CAST(275 AS DECIMAL(5, 2));

Résultat :

275.00

Nous pouvons utiliser cette méthode même si le nombre est déjà une valeur décimale mais avec plus de décimales.

Une chose à retenir cependant, c'est que si vous réduisez le nombre de décimales d'un nombre avec plus de deux décimales, vous pourriez vous retrouver avec la deuxième décimale arrondie :

SELECT CAST(275.4567 AS DECIMAL(5, 2));

Résultat :

275.46

Le CONVERT() Fonction

Ici, nous utilisons CONVERT() pour faire la même chose - convertissez le nombre en décimal :

SELECT CONVERT(DECIMAL(5, 2), 275);

Résultat :

275.00

Le FORMAT() Fonction

Une autre façon de formater un nombre avec deux décimales est d'utiliser le FORMAT() fonction :

SELECT FORMAT(275, 'N2');

Résultat :

275.00

Cette fonction convertit en fait le nombre en chaîne, donc techniquement, le résultat n'est pas un type numérique.

Le N2 partie est appelée chaîne de format. Dans ce cas, N est pour le nombre et 2 correspond au nombre de décimales (vous pouvez augmenter ou diminuer ce nombre selon vos besoins).

La même technique peut être utilisée pour réduire les décimales à deux, à partir d'un nombre avec plus de décimales :

SELECT FORMAT(275.4567, 'N2');

Résultat :

275.46

Il a été arrondi, comme lorsque nous avons converti le nombre dans l'autre exemple.

Une autre façon de procéder consiste à utiliser une chaîne de format personnalisée. Les chaînes de format personnalisées vous permettent de spécifier un format qui peut ne pas être pris en charge par une chaîne de format standard.

Voici un exemple d'utilisation de chaînes de format personnalisées :

SELECT 
    FORMAT(275, '###.##') AS "###.##",
    FORMAT(275, '000.00') AS "000.00",
    FORMAT(275.4567, '###.##') AS "###.##",
    FORMAT(275.4567, '000.00') AS "000.00";

Résultat :

+----------+----------+----------+----------+
| ###.##   | 000.00   | ###.##   | 000.00   |
|----------+----------+----------+----------|
| 275      | 275.00   | 275.46   | 275.46   |
+----------+----------+----------+----------+

Nous pouvons voir qu'il y a une différence entre l'utilisation de # et 0 dans la chaîne de format. Le # le spécificateur de format supprime tous les zéros non significatifs tandis que le 0 le spécificateur de format ne le fait pas.

Mais peut-être plus important encore (pour les besoins de cet article), le 0 Le spécificateur de format vous permet d'ajouter des zéros non significatifs s'ils ne sont pas présents dans le nombre d'origine. Par conséquent, il peut être utilisé pour ajouter deux décimales à un entier (comme dans l'exemple ci-dessus).

Le STR() Fonction

Une autre façon de formater un nombre à deux décimales est d'utiliser le STR() fonction :

SELECT STR(275, 6, 2);

Résultat :

275.00

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

Le premier argument est une expression de type de données float avec un point décimal.

Le deuxième argument est la longueur totale. Cela inclut le point décimal, le signe, les chiffres et les espaces. La valeur par défaut est 10.

Le troisième argument est le nombre de décimales à droite de la virgule. Celui-ci doit être inférieur ou égal à 16.