假如有个数据是12.36
怎么查询 12.3

解决方案 »

  1.   

    declare @a numeric(18,2)
    set @a=12.36
    select str(round(@a,1,1),4,1)
    /*
    ---- 
    12.3(所影响的行数为 1 行)
    */
      

  2.   

    如果结果可以是字符串select left(convert(varchar(10),12.36),charindex('.',convert(varchar(10),12.36))+1)
    ----------
    12.3
      

  3.   

    下例使用两个 SELECT 语句说明四舍五入和截断之间的区别。第一个语句四舍五入结果。第二个语句截断结果。SELECT ROUND(150.75, 0)
     151.00
     
    SELECT ROUND(150.75, 0, 1)
     150.00
     
      

  4.   

    结果要转成数值型呀,
    declare @a numeric(18,2)
    set @a=12.36
    select cast(str(round(@a,1,1),4,1) as numeric(18,1))
      

  5.   

    declare @a numeric(18,2)
    set @a=12.36select cast(@a-0.05 as numeric(18,1))
      

  6.   

    如果结果可以还是decimal
    select convert(decimal(10,1),round(12.36,1,1))------------
    12.3
      

  7.   

    对了,round()函数的最后一个参数,就是起这个作用的
    declare @i numeric(10,2)
    set @i=12.36
    select cast(round(@i,1,1) as numeric(10,1))