根据你的具体数据库,用函数那字符型变成整数型,
比如 sqlserver 的 conver用字符比较可能出现这个问题
'100' < '60'

解决方案 »

  1.   

    query1.sql.add('select * from '+''''+cjdm+''' where strtoint(CCC)>=60 or strtoint(DDD)>=60 or strtoint(EEE)>=60');
      

  2.   

    数据操作里有把字符型数据转换成数字的函数,好像是ToXX,我不太记得了,你查一下,另外你也可以比较字符,如下写:
    query1.sql.add('select * from '+''''+cjdm+''''+' where ccc>='+inttostr(60)+' or ddd>='+inttostr(60)+' or eee>='+inttostr(60))
      

  3.   

    为什么把成绩字段设成字符型,设成float,不就没问题了么?
      

  4.   

    如果你使用的数据库是SQLSERVER7以上版本,可以这样
    query1.sql.add('select * from '+''''+cjdm+''' where Convert(CCC as Int)>=60 or Convert(DDD as Int)>=60 or Convert(EEE as Int)>=60');
      

  5.   

    我自己搞定了,用以下语句。
    query1.sql.add('select * from '+''''+cjdm+''' where F01>'+'''60'' or F05>'+'''60''');
    但现在出了一个新毛病。可能是or的问题。如果出现成绩都为100的时候也被当成不及格过滤掉了。是怎么回事