2016-02-28 28 views

回答

1

嘗試這種方式

Select * From 
(select * from people) where ROWNUM % 2=0 
+0

我不認爲這將在Oracle中起作用。我認爲它只會返回表中的「第二」行,因爲'rownum'計算返回的行 - 所以當一行沒有被返回時它會停止遞增。 –

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是可選的,但該行可能會在沒有任何順序進行評估。

相關問題