'select distinct tieldname from tablename'
这样一句话再oracle 的SQL PLUS中可以用,是对的,但是在delphi中编程时使用adoquery.sql.add('select distinct tieldname from tablename')这样就不管用,distinct 有没有都是一样的了,帮帮忙了。

解决方案 »

  1.   

    ?不是吧?!
    没有用过oracle,但其他数据库都对啊,试试
    adoquery.sql.add('select distinct tieldname from tablename group by tieldname ')
    或者
    adoquery.sql.add('select top 1 tieldname from tablename group by tieldname ')adoquery.open;
      

  2.   

    不承认group by 语句 ,它说‘不是group by表达式’还有什么办法吗?大家帮忙呀!拜托了.
      

  3.   

    首先如果不是分组性质的语句是不能group by 的,你这个我感觉用的不是oracle的数据库,可能用的是一些小的数据库,例如interbase就会有这个问题,但是不会想你说得那么严重,假设30万条记录中选择1000个distinct的纪录,他会出现5到10个重复记录,但是当你第二次distinct就一定不会出现。如果你一定要这么解决,我感觉一个可行的办法是,增加一个索引再你需要distinct的字段上,然后执行刚才的那句话,应该没问题。还有如果你的数据库中数据量不大哪么还是检查你的程序别的地方又没有改变你的distinct的地方
      

  4.   

    'select distinct tieldname from tablename'
    这样一句话再oracle 的SQL PLUS中可以用,是对的,但是在delphi中编程时使用adoquery.sql.add('select distinct tieldname from tablename')这样就不管用,distinct 有没有都是一样的了,帮帮忙了。首先如果不是分组性质的语句是不能group by 的,你这个我感觉用的不是oracle的数据库,可能用的是一些小的数据库,例如interbase就会有这个问题,但是不会想你说得那么严重,假设30万条记录中选择1000个distinct的纪录,他会出现5到10个重复记录,但是当你第二次distinct就一定不会出现。如果你一定要这么解决,我感觉一个可行的办法是,增加一个索引再你需要distinct的字段上,然后执行刚才的那句话,应该没问题。还有如果你的数据库中数据量不大哪么还是检查你的程序别的地方又没有改变你的distinct的地方
      

  5.   

    在delphi中有这种问题存在,要不用group by 解决吧