SQL中如何提取小数点后最后一位数字

SQL中如何提取小数点后最后一位数字,第1张

 DECLARE @str NVARCHAR(100)='1224'

 SELECT CHARINDEX('',@str)

 SELECT SUBSTRING(@str,CHARINDEX('',@str)+3,1)

望采纳

--去掉小数点后多余的0 2012-10-26

Declare @number nvarchar(20),@lastnum char(10)

--测试变量

Select @number = 2500500

--记录最后一们数字

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

--注:你可以把第二行代码的数字替换下,然后所有代码一起执行,看结果是否你你想要的。

select substr('10203040',

instr('10203040', '', 1, 1 /这里的1表示第1个 /) + 1,

instr('10203040', '', 1, 2 /这里的2表示第2个 /) -

instr('10203040', '', 1, 1 /这里的1表示第1个 /) - 1)

from dual;

直接用convert,如:

Select convert(decimal(10,2),'10230000')

decimal(10,2)中的两个数值,第一个参数表类型的长度,第二个参数表小数点后精度,

取小点2位,则为2,三位则为3。

试试吧,OK!

给分吧,嘿嘿。

查询时改为字符型,用通配符查询。

select from table where to_char(czkasmant) like '%1';(如果不是oracle的话,可能to_char那块可能不太一样,但是我记得其他数据库应该也有类似这样的函数)

如果一定要用数字的方法查询,那么要考虑个问题。

是否会会出现10015这样的数,这样的数要不要显示。

像上面那种肯定不会出现这个问题,那种的话,后面必须是1才行。

如果不显示:select from table where czkasmant-trunc(czkasmant)=01

如果显示:select from table where czkasmant-trunc(czkasmant)>=01 and czkasmant-trunc(czkasmant)<02

trunc在这里表示截取整数,也可以用floor,不过trunc好像是通用的吧,所以我用了这个

DECLARE @f FLOAT =0771014415253685

SELECT FLOOR(@F10)10/10

如上 你可以先乘以10(因为一位小数),再用向下取整的函数floor,最后记得10/10  即除以开头乘的10

以上就是关于SQL中如何提取小数点后最后一位数字全部的内容,包括:SQL中如何提取小数点后最后一位数字、sql 中如何舍去小数最后一位为0 如:20.50只能取20.5、SQL 如何取小数点前面的数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9493163.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存