salut
je voudrais une fonction qui permet le formatage du nombre avec sybase
ex : 123456789 --> 123 456 789
sur Oracle existe to_char(char, 999 999...)
merci bien de m'aider
Version imprimable
salut
je voudrais une fonction qui permet le formatage du nombre avec sybase
ex : 123456789 --> 123 456 789
sur Oracle existe to_char(char, 999 999...)
merci bien de m'aider
je l'ai besoin fortement :(
Ce type de formattage n'est à priori pas disponible en T-SQL - le principe étant que le formattage est fait pas le client.
Cependant, on peut écrire du code qui permette tout de même de le faire. L'algo de base est de convertir le nombre en char, l'inverser, inserer un blanc (ou virgule, point, etc) tous les trois charactères, puis re-inverser pour le remettre dans le bon sens.
Cela donne qqch comme ceci:
C'est pas exactement facile à suivre... en 15.0.2 on peut en faire un fonction, ce qui facilite l'usage quelque peu...Code:
1
2
3
4
5 declare @f float --numeric(38, 2) select @f = 10054578954319.98 select case when sign(@f) < 0 then '-' else '' end + right(reverse(stuff(stuff(stuff(stuff(reverse(str(abs(@f), 20, 2)), 7, 0, ","), 11, 0, ","), 15, 0, ","), 19, 0, ",")), round(7.0/3 + 4.0/3 * char_length(ltrim(str(abs(@f), 20, 0))), 0))
Michael