我有这个选择:select isnull(Pricea,0)-isnull(Priceb,0) as Differences
列的格式是十进制(12,4)。我的问题是:只有当它们大于 0 时,我才能以某种方式返回小数?如果结果将是例如 4.0000 似乎令人困惑,所以我只想在小数大于 0 时才显示小数。这可能吗?
问问题
3545 次
2 回答
2
当天花板(Num)=地板(Num)时,数字为整数
select case when ceiling(Num) = floor(Num)
then CONVERT(varchar, CAST(Num as decimal))
else CONVERT(varchar, Num)
end
于 2012-12-07T10:06:07.023 回答
1
它只是在 MangementStudio 中为数据类型显示的那种蜜蜂。为了调整显示类型,您可以执行类似的操作
Declare @a table (a decimal(12,4),b decimal(12,4))
insert into @a Values(12.45,10.45)
insert into @a Values(12.45,10.4512)
insert into @a Values(12.4512,10.4500)
Select Cast(Case when a-b<>Floor(a-b) then Cast(a-b as float) else a-b end as Varchar(30)) as Diff
from @a
于 2012-12-07T10:06:05.710 回答