Oracle数据库Rownum之间

时间:2017-07-28 01:34:13

标签: sql database oracle oracle11g

此sql查询中有25条记录 我想要在5到10之间。我该怎么办? 我用11g

select
(
    select count(*) as sayfasayisi
    from konular t
    where t.kategori is not null
) as sayfasayisi,
t.id,
t.uye,
t.baslik,t.mesaj,t.kategori,t.tarih,
t.edittarih,t.aktif,t.indirimpuani,t.altkategori,t.link,
nvl(
    (select case when t.id = f.konuid and f.uye = 'test' then '1' else '0' end
     from takipkonu f where t.id = f.konuid and f.uye = 'test'), '0') as takip
from konular t
where t.kategori is not null

1 个答案:

答案 0 :(得分:0)

您可以使用ROW_NUMBER()根据当前查询中包含的某些排序逻辑分配行号,例如某一栏。然后,只保留第5到第10条记录:

select t.*
from
(
    select
    (
        select count(*) as sayfasayisi
        from konular t
        where t.kategori is not null
    ) as sayfasayisi,
    ROW_NUMBER() OVER (ORDER BY some_col) rn,
    t.id,
    t.uye,
    ...
) t
where t.rn between 5 and 10;