SQL Serverのストアドプロシージャで、変数を10進数としてキャストしています。
CAST( @ToValue as decimal(38,5) )
結果が57282.0000(10進値は0)の場合、57282として表示します。
それ以外の場合は、たとえば57282.48300として表示したいと思います。
値が8桁の数値より大きい場合、指数形式で表示されるため、floatを使用できません。
どうすればこれを解決できますか?
SQL Serverのストアドプロシージャで、変数を10進数としてキャストしています。
CAST( @ToValue as decimal(38,5) )
結果が57282.0000(10進値は0)の場合、57282として表示します。
それ以外の場合は、たとえば57282.48300として表示したいと思います。
値が8桁の数値より大きい場合、指数形式で表示されるため、floatを使用できません。
どうすればこれを解決できますか?
これは、レポート ソフトウェアの書式設定オプションで行う必要があります。
何らかの理由でそれが不可能な場合は、次の方法でうまくいく可能性があります。
;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