首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何避免这种嵌套查询

如何避免这种嵌套查询
EN

Stack Overflow用户
提问于 2020-02-06 14:27:13
回答 2查看 51关注 0票数 0

我有一个category表,并且需要为同样的表做分页。我使用的是JSF,并使用XML进行查询。有没有办法更好地优化这个查询。

代码语言:javascript
复制
SELECT
    *
FROM
    (
        SELECT
            categories.*,
            ROWNUM rn
        FROM
            (
                SELECT
                    *
                FROM
                    (
                        SELECT
                            *
                        FROM
                           categories
                        WHERE
                          name LIKE 'FAMILY%'
                        ORDER BY
                            id
                    )
                WHERE
                    ROWNUM < 21
            ) categories
    )
WHERE
    rn > 10;
EN

回答 2

Stack Overflow用户

发布于 2020-02-06 14:49:36

在较新的数据库版本12上,提供了偏移和提取特性,因此您的查询可能如下所示

代码语言:javascript
复制
SELECT *
  FROM categories
 WHERE name LIKE 'FAMILY%'
 ORDER BY id
OFFSET 10 rows -- skips first 10 rows of the result
 FETCH 11 rows only;

请试一下那个。

可以使用以下查询检查DB版本

代码语言:javascript
复制
select * from v$version;
票数 2
EN

Stack Overflow用户

发布于 2020-02-06 14:37:30

您是否在寻找这样的查询?

代码语言:javascript
复制
SELECT * FROM (
SELECT ROW_NUMBER() OVER (ORDER BY id) ROWNUM,* FROM categories
WHERE name LIKE 'FAMILY%') as categories where ROWNUM between 10 and 21
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60088898

复制
相关文章

相似问题

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