String sql = "select * from deploy_directory dd,deploy_info di where dd.dsc_id="+dsc_id+" and dd.d_id="+d_id+" and dd.di_id=di.di_id and rownum<="+count+"  order by di_de_date desc";我的这个SQL语句是先取行数,然后排序,这不是我想要的,我需要先排序,然后取行数String sql = "select * from (select * from deploy_directory dd,deploy_info di where dd.dsc_id="+dsc_id+" and dd.d_id="+d_id+" and dd.di_id=di.di_id order by di_de_date desc) where rownum<="+count;
不对啊 !
这是两个表,要是一个表下面的就能对啦!
请高手写个

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【al_you_ge】截止到2008-07-01 10:37:20的历史汇总数据(不包括此帖):
    发帖数:3                  发帖分:200                
    结贴数:3                  结贴分:200                
    未结数:0                  未结分:0                  
    结贴率:100.00%            结分率:100.00%            
    敬礼!
      

  2.   

    不是分页的 ,是oracle的  我想查询一些信息的前10条记录,并且这些记录是最近发布的10条,一个表我能实现,俩表就报错啊!期待... 
      

  3.   

    from () a
    这后面加个标识试试
      

  4.   

    我直接在PL/SQL里面试的 没错....
      

  5.   

    select * from table1 group by id limit 100
    mysql的
      

  6.   

    String sql = "select * from (select * from deploy_directory dd,deploy_info di where dd.dsc_id="+dsc_id+" and dd.d_id="+d_id+" and dd.di_id=di.di_id order by di_de_date desc)T where T.rownum <="+count; 
    这样看看
      

  7.   

    String sql = "select top 10 * from 信息所在的表名 where di_id in (select top 10 信息所在的表名.di_id from deploy_directory dd,deploy_info di where dd.dsc_id="+dsc_id+" and dd.d_id="+d_id+" and dd.di_id=di.di_id order by di_de_date desc) 
      

  8.   

    select *  from (select * from deploy_directory d,deploy_info di)
    这样的都不对啊 
    郁闷死啦
      

  9.   

    String sql = "select * from (select * from deploy_directory dd,deploy_info di where dd.dsc_id="+dsc_id+" and dd.d_id="+d_id+" and dd.di_id=di.di_id order by di_de_date desc) fetch first "+count+" rows only"; 这样写呢?
      

  10.   

    在mysql中 这样引用结果集是要 给他加上标识的 from() a
      

  11.   

    而且里面的select最好不用*吧 用哪些写哪些
      

  12.   

    4楼正解
    from 后面如果不是表名是一个查询结果的话,一定要给这个查询结果取个名字
    还有一点,楼主最好用INNER JOIN写联合查询
    如下
    select * from (select * from deploy_directory dd INNER JOIN deploy_info di ON dd.di_id=di.di_id where dd.dsc_id="+dsc_id+" and dd.d_id="+d_id+" order by di_de_date desc)  AA where rownum <="+count; 
      

  13.   

    select p.*,p.rn from (select s.*,rownum rn from deploy_directory dd,deploy_info di where dd.dsc_id="+dsc_id+" 
    and dd.d_id="+d_id+" and dd.di_id=di.di_id order by di_de_date desc) p where rownum <="+count试试这个。
      

  14.   

    String sql = "select * from (select di.*,dd.* from deploy_directory dd,deploy_info di where dd.dsc_id="+dsc_id+" and dd.d_id="+d_id+" and dd.di_id=di.di_id  order by di_de_date desc) where rownum<="+count;
    这样的错啦
    String sql = "select * from (select di.* from deploy_directory dd,deploy_info di where dd.dsc_id="+dsc_id+" and dd.d_id="+d_id+" and dd.di_id=di.di_id  order by di_de_date desc) where rownum<="+count+" ";
    这样的对啦,只能取一个表的信息,还好我目前只要di里的信息,真不知道同时需要俩表的信息咋个办啊
      

  15.   

    你把最外面的"select *"改成select 具体的字段名试试看可以不
      

  16.   

    String sql = "select * from deploy_directory dd,deploy_info di where dd.dsc_id="+dsc_id+" and dd.d_id="+d_id+" and dd.di_id=di.di_id and rownum <="+count+"  order by di_de_date desc fetch first 10 rows only";
    这样写在DB2里面是可以的,不知道ORACLE里面可管,你看看吧。