--你需要把数据类型转换为字符型,否则数据库会隐式转换将int转为decimal(18,4), -- int,decimal(18,4)不能共存在一个集合里。 declare @sl decimal(18,4) set @sl=9.0000 select case when cast(@sl as int)=@sl then rtrim(cast(@sl as int)) else rtrim(@sl) end set @sl=9.0001 select case when cast(@sl as int)=@sl then rtrim(cast(@sl as int)) else rtrim(@sl) end/* ----------------------------------------- 9(1 行受影响) ----------------------------------------- 9.0001
--你需要把数据类型转换为字符型,否则数据库会隐式转换将int转为decimal(18,4),
-- int,decimal(18,4)不能共存在一个集合里。
declare @sl decimal(18,4)
set @sl=9.0000
select case when cast(@sl as int)=@sl then rtrim(cast(@sl as int)) else rtrim(@sl) end
set @sl=9.0001
select case when cast(@sl as int)=@sl then rtrim(cast(@sl as int)) else rtrim(@sl) end/*
-----------------------------------------
9(1 行受影响)
-----------------------------------------
9.0001