You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从返回多行结果的SQL查询中获取指定的第3条记录?

SQL查询取指定行(第3行)的实现方案

注意:取指定行的前提是你已经为查询添加了稳定的排序规则,你给出的语句中已经按照journeys.id排序,符合前提要求。如果排序规则不稳定(比如排序字段存在重复值),建议增加辅助排序字段,确保每次查询的结果顺序一致,避免取到的行不符合预期。另外OFFSET的计数从0开始,所以要取第N行的话,OFFSET的值为N-1,取第3行对应OFFSET=2。


通用标准语法(支持PostgreSQL、SQL Server 2012+、MySQL 8.0+、Oracle 12c+)

使用OFFSET跳过前N行,FETCH NEXT取指定行数即可:

SELECT (journeys.id, j_starting_channel)
AS JER FROM JOURNEYS
WHERE j_starting_channel = 'channel_name' 
ORDER BY journeys.id
OFFSET 2 ROWS FETCH NEXT 1 ROWS ONLY;

MySQL低版本、SQLite适用语法

使用LIMIT OFFSET组合,写法更简洁:

SELECT (journeys.id, j_starting_channel)
AS JER FROM JOURNEYS
WHERE j_starting_channel = 'channel_name' 
ORDER BY journeys.id
LIMIT 1 OFFSET 2;
-- 也可以简写为 LIMIT 2,1

Oracle 11g及更早版本适用语法

旧版本Oracle不支持OFFSET语法,需要嵌套ROWNUM实现:

SELECT * FROM (
    SELECT t.*, ROWNUM AS rn 
    FROM (
        SELECT (journeys.id, j_starting_channel) AS JER 
        FROM JOURNEYS
        WHERE j_starting_channel = 'channel_name' 
        ORDER BY journeys.id
    ) t
    WHERE ROWNUM <=3
) WHERE rn =3;

内容的提问来源于stack exchange,提问作者Hadas Hamerovv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 11:18:00