Nous stockons une décimale (9,8) dans notre base de données. Il peut avoir n'importe quel nombre de places après le point décimal (bien, pas plus de 8). Je suis frustré parce que je veux l'afficher en tant que texte lisible par l'homme dans le cadre d'une chaîne plus grande créée sur le serveur. Je veux autant de décimales à droite de la virgule comme sont non nuls, par exemple:Bonne façon de formater la décimale dans SQL Server
0.05
0.12345
3.14159265
sont tous bons
Si je
CAST(d AS varchar(50))
je suis mise en forme comme:
0.05000000
0.12345000
3.14159265
Je reçois une sortie similaire si je convertis/convertis en un type float ou autre avant d'être converti en un varchar. Je sais comment faire un nombre fixe de décimales, telles que:
0.050
0.123
3.142
Mais ce n'est pas ce que je veux. Oui, je sais que je peux le faire par le biais de manipulation de chaînes compliquée (REPLACE, etc), il devrait y avoir un bon moyen de le faire.
Vous trouverez dans les cas comme celui-ci que les outils de reporting font un meilleur travail à la mise en forme de bases de données ne. – JeffO
Pour ne pas insister sur le point, mais la raison pour laquelle cela est lourd à faire en SQL est que SQL n'est pas conçu pour formater les données; il est conçu pour renvoyer des données. Ainsi, cela serait plus facile en retournant une décimale à l'application appelante et laissez-la la formater comme vous le souhaitez. SQL est horrible à la manipulation de chaîne comme vous pouvez le voir dans les solutions de contournement. – Thomas