是关于分页的,取tblitemmaster的第181到200条数据
select * from (select rownum id, a.* from (select * from tblitemmaster order by itm_Code) a where rownum<=200) where id>=181放在TQuery中执行老是出错!

解决方案 »

  1.   

    rownum是Oracle为每个表都准备的属性
      

  2.   

    select * from tblitemmaster order by itm_Code where rownum<=200 
    and rownum>=181这样可以吗?
      

  3.   

    不可以, 你的语句是错误的! 在Oracle 8i 中
      

  4.   

    在8i中,rownum是只能用<=,不能选择rownum > ... 你提示什么错误,我是oracle8.17,把你语句改成我这里的表:
    select * from (select rownum id, a.* from 
          (select * from table_fj order by id0000) a where rownum<=3) 
          where id>=2;上面语句可以执行。
      

  5.   

    在sqlplus中可以执行, 但是放在TQuery的SQL中就不可以执行
    错误针对你的大概是field id0000) not found
      

  6.   

    select * from 
       (  select rownum id, a.* from 
            (select * from tblitemmaster order by itm_Code) a 
             where rownum<=200) 
    where id>=181不是DELPHI问题,你的SQL有问题,在SQL-plus里可以运行么?
    这样方便阅读一点,一你的A表不是物理存在的表如何用rownum呢?
      

  7.   

    我这里是可以的, 不信你可以在sqlplus中试试,
    将tblitemmaster换成你的表名, itm_code换成你的主键
      

  8.   

    象你这种不带参数的,应该用Query1.execsql来执行,你是不是用的query1.open
      

  9.   

    select * from (select rownum id, a.* from (select * from tblitemmaster order by itm_Code) a where rownum<=200) F where id>=181//少了一个别名
      

  10.   

    select * from 
      (select rownum id, a.* from 
        (select * from tblitemmaster order by itm_Code) a 
        where rownum<=200) F<---加上一个F别名就行了
    where id>=181
      

  11.   

    不是这个原因,还是出错,我用的是Delphi5, 是不是delphi的
    问题?
      

  12.   

    你的SQL语句 我试过了没有问题,你都用TQuery进行了那些操作?
      

  13.   

    ORACLE的版本底,在ORACLE8i肯定没问题
      

  14.   

    我只是用TQuery来查询, 我用的肯定是ORACLE8i没错