现在表结构是这样的。
C
-------------------
id num1 num2 num3
1  5904.000000000 2.020000000 233.000400000然后 把查询的结果集 变成
id num1 num2 num3
1  5904 2.02 233.0004就是num1 控制精度为0
num2控制精度为2
num3 控制精度为4? 这样的效果 如何做??

解决方案 »

  1.   

    sql 有什么 函数 能够 截取精度的????????
      

  2.   

    cast(num1 as decimal(18,0))
    cast(num2 as decimal(18,2))
    cast(num3 as decimal(18,4))
      

  3.   

    或者用:ROUND
    返回数字表达式并四舍五入为指定的长度或精度。语法
    ROUND ( numeric_expression , length [ , function ] ) 
      

  4.   

    cast(num1 as decimal(18,0))
    cast(num2 as decimal(18,2))
    cast(num3 as decimal(18,4))关键字 as 有语法错误
      

  5.   

    select Round(num1.RiLing),0).. 也没效果
      

  6.   


    select id,cast(num1 as decimal(10,0)) as num1,cast(num2 as decimal(10,2)) as num2,cast(num3 as decimal(10,4)) as num3 from C
      

  7.   

    select cast(num1 as decimal(18,0)),cast(num2 as decimal(18,2)),cast(num3 as decimal(18,4))
      

  8.   

    declare @num1 float
    set @num1=5904.000000000
    select cast(@num1 as decimal(18,0))
    select cast(@num1 as decimal(18,2))
    select cast(@num1 as decimal(18,4))
    /*
    ---------------------------------------
    5904(1 行受影响)
    ---------------------------------------
    5904.00(1 行受影响)
    ---------------------------------------
    5904.0000
      

  9.   

    '日龄'=cast((ISNULL(ychu.RiLing,cj.RiLing),0)) as decimal(18,0)),编译都过不去。。
      

  10.   

    create table C(id int,num1 decimal(18,9),num2 decimal(18,9),num3 decimal(18,9))
    insert into c values(1 ,5904.000000000 ,2.020000000 ,233.000400000)
    goselect id , 
           num1 = cast(num1 as decimal(18,0)),
           num2 = cast(num2 as decimal(18,2)),
           num3 = cast(num3 as decimal(18,4))
    from cdrop table c/*
    id          num1                 num2                 num3                 
    ----------- -------------------- -------------------- -------------------- 
    1           5904                 2.02                 233.0004(所影响的行数为 1 行)
    */
      

  11.   

    cast((ISNULL(ychu.RiLing,cj.RiLing)) as decimal(18,0)),对了谢谢