Ich habe ein Szenario, in dem ich '-' anzeigen muss, wenn der Wert null und numerische Daten wenn nicht null ist. Ich habe eine Funktion erstellt, die das handhabt. Unten ist der Clip des gleichen.Bedingtes Dezimalformat Formatierung
DECLARE @response varchar(max)
set @response=Case when (@data is null) then '-'
else STR(@data,25,@roundUp)
end
RETURN @response
Ich brauche Antwort wie unten
@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
ich unter Klausel versucht, die aber nicht in meiner Abfrage funktioniert tun.
select cast(CAST(round(10028.000,3) as decimal(18,5)) as float)
Bitte schlagen Sie etwas vor, das das lösen kann. Versuchte Google.
Ich weiß nicht Welche Datenbank Sie verwenden, ist die Art der Sache, die normalerweise am besten in der Präsentationsebene behandelt wird. Z.B. Wenn Sie Java auf einer SQL-Datenbank verwenden würden, hätten Sie viele praktische Funktionen, um die gewünschte Formatierung zu erhalten. –
Wenn ich @TimBiegeleisen 100 mal kommentieren könnte würde ich. Speichern Sie nicht das genaue Format, das Sie benötigen, speichern Sie die Nummer. Wenn Sie es ziehen, formatieren Sie es dann. Andernfalls wirst du gezwungen sein, eine Nummer als Text zu speichern und jedes Mal, wenn du damit klarkommst, wirst du es umwandeln müssen. Es ist teurer Speicher und teurer Abruf. – JNevill
@TimBiegeleisen, korrekt sollte ich das alles in Presentation Layer behandeln. aber derzeit in einer Sackgasse. Wird sich definitiv in meinem nächsten Update ändern. –