日期:2014-05-18  浏览次数:20612 次

看似简单的问题
SQL   Server中一个表t的数据列c,有如下数据,类型为numeric(12,4)
1.1100
1.1230
1.1245
查询时如何去掉末尾的0

------解决方案--------------------
declare @str numeric(12,4)
set @str= '1.50 '
select reverse(stuff(reverse(@str),1,patindex( '%[^0]% ',reverse(@str))-1, ' ')) as test
------解决方案--------------------
create function dbo.hyc(@x numeric(12,4))
returns varchar(100)
as
begin
declare @zero char(4)
set @zero= '0 '
declare @xx varchar(100)
set @xx=convert(varchar(100),@x)
declare @tt varchar(100)
set @tt= ' '
while right(@xx,1)=@zero
begin
set @tt=right(@xx,1)
if @zero=@tt
set @xx=left(@xx,len(@xx)-1)
end
return @xx
end
go
--测试
select dbo.hyc(2222.2020),dbo.hyc(2222.2000)
--结果
2222.202 2222.2