a字段  numeric(19, 6)  ,转换成 CAST(a AS VARCHAR),
本来是3,转出来后就变成3.000000,请问要怎么把.000000去掉

解决方案 »

  1.   

    cast(cast(a as dec(19,6)) as int)
      

  2.   

    select cast(cast('3.000000000' as dec(19,6)) as int)
    /*
    -----------
    3(1 行受影响)*/
      

  3.   

    cast(A as int)cast(cast(A as int) as varchar(10))
      

  4.   

    ---还是这样
    select ltrim(cast(cast(cast('3.000000000' as varchar(10)) as dec(19,6)) as int))
    /*
    -----------
    3(1 行受影响)*/
      

  5.   

    --凑凑热闹
    select int(3.000000000)
      

  6.   

    SELECT cast(cast(A as int) as varchar(10))
      

  7.   

    create table T(qty numeric(19,6))
    insert into T values(3.000000)
    insert into T values(300.000000)
    insert into T values(301.000000)
    insert into T values(3.020000)
    insert into T values(3.001000)
    insert into T values(3.900000)
    insert into T values(3.888888)
    insert into T values(3.000001)select case when right(rtrim(qty),6)='000000'
    then left(rtrim(qty),len(rtrim(qty))-7)
       else
                reverse(stuff(reverse(rtrim(qty)),1, patindex('%[1-9]%',reverse(rtrim(qty)))-1,'') )
           end as qty
    from T/*
    qty
    ----------------
    3
    300
    301
    3.02
    3.001
    3.9
    3.888888
    3.000001
    */
    drop table T