0
在SQL Server存儲過程我鑄造一個變量爲十進制:SQL Server的一輪十進制數據,如果小數部分是0
CAST(@ToValue as decimal(38,5))
如果結果是說57282.0000(十進制數值爲0),我想它顯示爲57282.
否則我想以57282.48300爲例。
我不能使用浮點數,因爲如果該值大於一個8位數字,它將顯示爲指數格式。
我該如何解決這個問題?
在SQL Server存儲過程我鑄造一個變量爲十進制:SQL Server的一輪十進制數據,如果小數部分是0
CAST(@ToValue as decimal(38,5))
如果結果是說57282.0000(十進制數值爲0),我想它顯示爲57282.
否則我想以57282.48300爲例。
我不能使用浮點數,因爲如果該值大於一個8位數字,它將顯示爲指數格式。
我該如何解決這個問題?
您應該在報告軟件的格式選項中執行此操作。
如果因爲某些原因不可能,那麼以下方法可能會起作用。
;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
爲什麼不在應用程序的表示層中格式化它? – LittleBobbyTables 2013-03-01 14:05:58
絕對是在你的應用層做到這一點。 – JNK 2013-03-01 14:06:48
這是一份報告 – Iraiyavan 2013-03-01 14:14:39