0

在 SQL Server 存储过程中,我将变量转换为十进制:

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

如果结果是 57282.0000 (十进制值为 0 ),我希望它显示为 57282。

否则,例如,我想显示为 57282.48300。

我不能使用浮点数,因为如果该值大于 8 位数字,它会显示为指数格式。

我该如何解决这个问题?

4

1 回答 1

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            
于 2013-03-01T14:24:35.923 回答