select    
case   len(cast(dfgap  as varchar(10)) ) 
       when  5 then  cast(dfgap  as varchar(10))
       when  4  then  cast(dfgap  as varchar(10))+'0'
       when 3  then  cast(dfgap  as varchar(10))+'00'
       when 2 then cast(dfgap  as varchar(10))+'000'
       when 1  then cast(dfgap  as varchar(10))+'.000'
end as  newdfgap
from  tableA如題,要把此語句寫入delphi的
                    query1.sql.add('');  中
想解決的問題是使dfgap字段小數點後保留三位有效數字。如果在delphi直接有此函數,請一起告訴我,在線,解決後送分!

解决方案 »

  1.   

    先用delphi的length返回要的字符长度
    再用case length(aaa) of
             5:
              command;
             ..
             1:
              commnad;
         end; 
    就可以了,其它方法我还没想
      

  2.   

    就一行行Add进去,不过你要保留单引号,需要加个单引号做转义符,就是''0''这样。
      

  3.   

    query1.sql.add('select    
    case   len(cast(dfgap  as varchar(10)) ) 
           when  5 then  cast(dfgap  as varchar(10))
           when  4  then  cast(dfgap  as varchar(10))+'+'+''0''
           when 3  then  cast(dfgap  as varchar(10))+'+'+''00''
           when 2 then cast(dfgap  as varchar(10))+'+'+''000''
           when 1  then cast(dfgap  as varchar(10))+'+'+''.000''
    end as  newdfgap
    from  tableA
    ');
      

  4.   

    Thanks!    I'll try!
      

  5.   

    hsmserver(撒哈拉之雨的悲伤) 能告訴我代碼原則嗎?
      

  6.   

    SQL语句是一个字符串,你在DELPHI里写成你所要SQL语句的字符串就可以了。