私はこれを選択しselect isnull(Pricea,0)-isnull(Priceb,0) as Differences
ました:列の形式は10進数(12,4)です。私の質問は次のとおりです。小数が 0 より大きい場合にのみ小数を返すことはできますか? 結果がたとえば 4.0000 になると混乱するように思われるので、0 より大きい場合にのみ小数を表示したいと思います。これは可能ですか?
質問する
3545 次
2 に答える
2
天井(数)=床(数)の場合、数値は整数です
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 に答える