永发信息网

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

答案:4  悬赏:40  手机版
解决时间 2021-11-29 22:44
sql 中如何舍去小数最后一位为0 如:20.50只能取20.5
最佳答案
--去掉小数点后多余的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)发现就可以实现了~
不过谢谢你了~
全部回答
不知道你是用的哪种数据库,Oracle中如果你设置的number类型。小数点后最后一位0是可以自动去掉的。
如果是字符串,那就要你自己写一个函数了。
-----可以先转换为字符型(字符的总长度减1),再转回数值型。
cast(substring (cast (字段 as varchar(50)),1, len(cast (字段 as varchar(50)))-1) as decimal(18,1))
反正oralce里,
select TO_CHAr(filed)+0 from TABLE
就可以去末尾0了,并且小数点前的第一个0不被抹掉。(例:00.250-》0.25)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
如何删除脱机工作文件
重庆市忠县 忠州这个名字的“忠”貌似是一个
要是有人跟你说 以后你未嫁我未娶 我们就一起
世界不同地区的人种和文化有很大的差异,下列
我有块石头,不知道是不是陨石,求专家朋友们
脖子被太阳晒脱皮了,怎么办
单选题在任何生态系统中能把二氧化碳释放到大
年轻人应该留胡须吗?
我想上下载中心找我杀毒软件
我见一个人手上带了一个胶皮的圈是什么东西
响水县正贸农民专业合作社在哪里啊,我有事要
一线锦城是正规学校吗
人触电,用铁棍能使人与电线分开吗
快递卡在一个地方两天不动了,是怎么回事
一般九十平方装修泥工要多少时间
推荐资讯
请问从攀枝花到乌东德水电站怎么乘车?票价多
丰田2TR145发动机145是啥意思
9月12日印度正值雨季还是旱季
秘密文件,机密文件,保密文件和绝密文件有什
描写雨后你会做什么
请问我可爱吗一点
QQ上有一女生总是加了我又删了我又加又删,这
林肯m k c发动机关了点烟器还有电吗
367毫米是多少厘米
文言文翻译:冀得一归觐
基站蓄电池单体电池之间电压不一致啊
落地扇摇头时嗒嗒的响,是怎么回事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?