sql 中如何舍去小数最后一位为0 如:20.50只能取20.5

转入的相关值,若小数点后的末尾位数存在0值,则转入时不能加0。例如20.50转入时,值格式须转入20.5。我用的是SQLServer... 转入的相关值,若小数点后的末尾位数存在0值,则转入时不能加0。例如20.50
转入时,值格式须转入20.5。
我用的是SQL Server
展开
 我来答
dragon13yi
推荐于2018-05-10 · 超过12用户采纳过TA的回答
知道答主
回答量:38
采纳率:0%
帮助的人:25.7万
展开全部
--去掉小数点后多余的0 2012-10-26
Declare @number nvarchar(20),@lastnum char(10)
--测试变量
Select @number = 25.00500
--记录最后一们数字
Select @lastnum = SUBSTRING(@number,len(@number),1)
--循环判断,只要最后一位是0,就舍去
while (@lastnum = '0')
begin
Select @number = SUBSTRING(@number,0,len(@number))
Select @lastnum = SUBSTRING(@number,len(@number),1)
end
--结果处理,如果最后一位是‘.’,就舍去
Select case when @lastnum = '.' then substring(@number,0,LEN(@number)) else @number end
Go

--注:你可以把第二行代码的数字替换下,然后所有代码一起执行,看结果是否你你想要的。
追问
这个循环方法确实可以实现,我发现用cast(25.00500 as float)发现就可以实现了~
不过谢谢你了~
lesan1984
2012-11-06 · 超过10用户采纳过TA的回答
知道答主
回答量:44
采纳率:0%
帮助的人:42.7万
展开全部
反正oralce里,
select TO_CHAR(filed)+0 from TABLE
就可以去末尾0了,并且小数点前的第一个0不被抹掉。(例:00.250-》0.25)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gotowen
2012-11-06
知道答主
回答量:10
采纳率:0%
帮助的人:1.1万
展开全部
-----可以先转换为字符型(字符的总长度减1),再转回数值型。
cast(substring (cast (字段 as varchar(50)),1, len(cast (字段 as varchar(50)))-1) as decimal(18,1))
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
古咕咕咕古07p
2012-10-25 · 超过13用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:22.9万
展开全部
不知道你是用的哪种数据库,Oracle中如果你设置的number类型。小数点后最后一位0是可以自动去掉的。
如果是字符串,那就要你自己写一个函数了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式