
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 如何取小数点前面的数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)