求整除的上限值,如1/6=1,13/6=3

解决方案 »

  1.   

    select 1/6+1
    /*----------- 
    1(所影响的行数为 1 行)*/
      

  2.   

    declare @a int
    set @a=20
    select @a/6+1
    /*            
    ----------- 
    4(所影响的行数为 1 行)*/
      

  3.   

    declare @a int
    set @a=20
    select CEILING(@a/6)
                
    ----------- 
    3(所影响的行数为 1 行)小F用CEILING
      

  4.   

    declare @a int
    set @a=12
    select CEILING(@a/6)
                
                
    ----------- 
    2(所影响的行数为 1 行)
      

  5.   

    select ceiling(1.0*1/6) [1/6],ceiling(1.0*13/6) [13/6]1/6    13/6
    ------ ---------
    1      3
      

  6.   

    select ceiling(1.0*1/6) [1/6],ceiling(1.0*13/6) [13/6],ceiling(1.0*12/6) [12/6]1/6    13/6 12/6
    ------ ------- ------
    1      3 2
      

  7.   


    值为13时也是不对的,试试declare @a int
    set @a=13
    select CEILING(@a*1.0/6)
      

  8.   

    declare @a int
    set @a=13
    select CEILING(@a*1.00/6)
                                     
    -------------------- 
    3(所影响的行数为 1 行)
                没有小数,精度有问题,只是整数,没有小数,比不了
      

  9.   

    declare @a int
    set @a=13
    select ceiling(@a*1.0/6)
    /*            
    ----------- 
    3(所影响的行数为 1 行)*/
      

  10.   


    为1时又错了,看来只能用mod来判断了
      

  11.   

    楼主,刚开始没考虑周到,要转成精度比较高的,SELECT CEILING(CONVERT(DECIMAL(18,5),@A)/6)楼上的也行了
      

  12.   

    declare @a int
    set @a=1
    select CEILING(@a*1.0/6)/**
                         
    -------------------- 
    1(所影响的行数为 1 行)
    **/
    1的时候怎么错了?