我有一個場景,我需要顯示' - '如果值爲空,並且數值數據如果不爲空。我已經創建了一個處理這個的函數。下面是相同的剪輯。有條件的小數點位置格式
DECLARE @response varchar(max)
set @response=Case when (@data is null) then '-'
else STR(@data,25,@roundUp)
end
RETURN @response
我需要響應如下
@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
我嘗試以下條款,著作,但是沒有我的查詢。
select cast(CAST(round(10028.000,3) as decimal(18,5)) as float)
請建議一些可以解決這個問題。試過谷歌。
我不知道你正在使用什麼數據庫,但這是通常最好在表示層處理的事情。例如。如果您在SQL數據庫之上使用Java,則可以使用許多方便的功能爲您提供所需的格式。 –
如果可以upvote @TimBiegeleisen評論100次我會。不要存儲你需要的確切格式,存儲號碼。當你拉它時,格式化它。否則,你將被迫以文本形式存儲一個數字,每當你處理它時,你都必須施放它。這是昂貴的存儲和昂貴的檢索。 – JNevill
@TimBiegeleisen,我應該在表示層處理所有這些。但目前處於死鎖狀態。我的下一次更新肯定會改變。 –