首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在oracle中使用限制关键字

问如何在oracle中使用限制关键字
EN

Stack Overflow用户
提问于 2012-07-27 06:11:17
回答 1查看 1.1K关注 0票数 2

我正在从表中检索数据,但不需要所有行,而是每次需要20行进行分页。为此,我使用了极限关键字,它在Mysql中工作得很好,但在Oracle中却不起作用。

代码:

代码语言:javascript
复制
"select "+  "C.CONTRACTOR_ID,C.CONTRACTOR_NAME,nvl(C.CONTACT_PERSON_1,'-'),nvl(C.CONTACT_PERSON_2,'-'),C.REGISTRATION_NO,CRA.DESCRIPTION REG_AUTH_NAME,"+
            "to_char(C.VALID_FROM,'dd/mm/yyyy'),to_char(C.VALID_TO,'dd/mm/yyyy'),CC.DESCRIPTION CONTRACTOR_CLASS,C.INCORP_PLACE,"+
            "IT.DESCRIPTION INCORP_TYPE,nvl(to_char(C.DATE_OF_INCORP,'dd/mm/yyyy'),'-') DATE_OF_INCORP,C.ADDRESS1,nvl(C.ADDRESS2,'-'),nvl(C.EMAIL_ID,'-'),"+
            "nvl(C.WEBSITE_URL,'-'),nvl(C.PHONE_NO,'-'),nvl(C.FAX_NO,'-'),nvl(C.MOBILE_NO,'-'),C.BANK_NAME,C.BANK_BRANCH,C.ACCOUNT_NO,C.IFSC_CODE," +
            "C.PAN_NO,nvl(C.TIN_NO,'-'),nvl(C.CST_NO,'-') "+ 
"from "+
            "CONTRACTOR C "+  
            "inner join CONTRACTOR_REG_AUTH CRA on CRA.REG_AUTH_ID=C.REG_AUTH_ID "+
            "inner join CONTRACTOR_CLASS CC on CC.CLASS_ID=C.CONTRACTOR_CLASS_ID "+
            "inner join INCORPORATION_TYPE IT on IT.INCORP_TYPE=C.INCORP_TYPE "+
"limit " + offset + ", " + noOfRecords ";

这里没有按关键字排序。我从不同的表中检索数据,然后一次只显示20行。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-27 06:16:53

在Oracle中,您可以使用特殊的rownum变量。这个示例的行为类似于limit FirstRow, NrOfRows

代码语言:javascript
复制
select  * 
from    ( 
        select  *
        ,       rownum as rn 
        from    YourTable
        order by
                id
        ) as SubQueryAlias
where   FirstRow <= rn 
        and rn < FirstRow + NrOfRows

来自AskTom的此查询的优化版本,从这个问题链接

代码语言:javascript
复制
select  * 
from    ( 
        select  /*+ FIRST_ROWS(n) */ 
                rownum as rn
        ,       *
        from    (
                select  *
                from    YourTable
                order by 
                        id
                ) as SubQueryAlias1
        where   rownum <= FirstRow + NrOfRows
        ) as SubQueryAlias2
where   rn >= FirstRow
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11682375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档