J'ai un scénario où j'ai besoin d'afficher '-' si la valeur est null et les données numériques sinon null. J'ai créé une fonction qui gère cela. Ci-dessous est le clip de la même chose.Mise en forme décimale conditionnelle
DECLARE @response varchar(max)
set @response=Case when (@data is null) then '-'
else STR(@data,25,@roundUp)
end
RETURN @response
J'ai besoin de réponse comme ci-dessous
@data=10258.69 and @roundUp=2 then @response=10258.69
@data=10258.00 and @roundUp=2 then @response=10258
@data=10258.695 and @roundUp=2 then @response=10258.70
@data=10258.69485 and @roundUp=2 then @response=10258.69
J'ai essayé ci-dessous clause qui fonctionne mais ne pas dans ma requête.
select cast(CAST(round(10028.000,3) as decimal(18,5)) as float)
Veuillez suggérer quelque chose qui peut résoudre ce problème. Essayé google.
Je ne sais pas Voyez quelle base de données vous utilisez, mais c'est le genre de chose qui est généralement mieux géré dans la couche de présentation. Par exemple. Si vous utilisiez Java au-dessus d'une base de données SQL, vous auriez beaucoup de fonctions pratiques pour donner le format que vous voulez ici. –
Si pourrait commentaire @TimBiegeleisen upvote 100 fois je le ferais. Ne stockez pas le format exact dont vous avez besoin, enregistrez le numéro. Lorsque vous le tirez, formatez-le ensuite. Sinon, vous serez obligé de stocker un nombre sous forme de texte et chaque fois que vous le traitez, vous devrez le lancer. C'est un stockage coûteux et une récupération coûteuse. – JNevill
@TimBiegeleisen, correct Je devrais gérer tout cela dans la couche de présentation. mais actuellement dans une situation de verrouillage mort. Va certainement changer dans ma prochaine mise à jour. –