2013-03-01 27 views
0

在SQL Server存儲過程我鑄造一個變量爲十進制:SQL Server的一輪十進制數據,如果小數部分是0

CAST(@ToValue as decimal(38,5)) 

如果結果是說57282.0000(十進制數值爲0),我想它顯示爲57282.

否則我想以57282.48300爲例。

我不能使用浮點數,因爲如果該值大於一個8位數字,它將顯示爲指數格式。

我該如何解決這個問題?

+2

爲什麼不在應用程序的表示層中格式化它? – LittleBobbyTables 2013-03-01 14:05:58

+0

絕對是在你的應用層做到這一點。 – JNK 2013-03-01 14:06:48

+0

這是一份報告 – Iraiyavan 2013-03-01 14:14:39

回答

0

您應該在報告軟件的格式選項中執行此操作。

如果因爲某些原因不可能,那麼以下方法可能會起作用。

;WITH T(Val) AS 
(
SELECT 57282 UNION ALL 
SELECT 57282.48300 
) 
SELECT CASE WHEN 1= 0 THEN NULL 
      WHEN Val = FLOOR(Val) THEN CAST(CAST(Val AS INT)AS SQL_VARIANT) 
      ELSE CAST(Val AS DECIMAL(38,5)) 
      END 
FROM T    
相關問題