0
我想在Oracle中選擇每隔一行。如何在oracle中選擇每第二行sql
我的編碼是L select * from people where count(peopleid) mod 2=0;
,但它沒有工作。
我想在Oracle中選擇每隔一行。如何在oracle中選擇每第二行sql
我的編碼是L select * from people where count(peopleid) mod 2=0;
,但它沒有工作。
嘗試這種方式
Select * From
(select * from people) where ROWNUM % 2=0
有作爲「中每隔一行」沒有這樣的事,因爲SQL表代表無序套。如果你有一列,指定排序,如peopleid
,那麼你可以使用row_number()
:
select p.*
from (select p.*, row_number() over (order by peopleid) as seqnum
from people p
) p
where mod(seqnum, 2) = 0;
編輯:
你可以做同樣的事情與rownum
,但它需要在子查詢中去:
select p.*
from (select p.*, rownum as seqnum
from people p
order by orderid
) p
where mod(seqnum, 2) = 0;
的order by
是可選的,但該行可能會在沒有任何順序進行評估。
我不認爲這將在Oracle中起作用。我認爲它只會返回表中的「第二」行,因爲'rownum'計算返回的行 - 所以當一行沒有被返回時它會停止遞增。 –