我有一个表emp(ename,eid,did,sal,sex),其中column是另一个表dept(did,dname)的外键。
我希望得到公司的第n个人以及人的详细信息。 我正在执行以下查询(我的表有10行)
SELECT rownum,vi.* FROM
(SELECT * FROM emp ORDER BY sal desc) vi
WHERE ROWNUM >5;
当我执行rownum> 5或rownum = 5时获取“无数据” 但是如果我执行rownum< 5那么我会显示4行。
。当我做rownum = n
时我想要数据答案 0 :(得分:0)
你能试试吗?
SELECT * FROM
(SELECT ROWNUM AS X, vi.*
FROM (SELECT * FROM emp ORDER BY sal desc) vi
) B
WHERE X>5
;
答案 1 :(得分:0)
看到这篇文章 https://book.cakephp.org/2.0/en/development/routing.html#connecting-routes
在您的示例中,您可以使用row_number函数
select * from (
select row_number() over (order by col1 desc) rn, * from test_table
)q where rn = 5
答案 2 :(得分:0)
假设你只想要第5行,你可以试试这个:
select *
from (
select rownum as rn,
vi.*
from (
select *
from emp
order by sal desc
) vi
where ROWNUM <= 5
) t
where rn = 5;
或使用窗口函数:
select *
from (
select row_number() over (order by sal desc) as rn,
vi.*
from emp vi
) t
where rn = 5;
如果您使用12c +,则可以使用前n个查询:
select *
from emp
order by sal desc
offset 4 rows
fetch first 1 row only;