我想在Oracle中选择每一行。
我的编码是L select * from people where count(peopleid) mod 2=0;
,但它可以工作。
答案 0 :(得分:1)
试试这种方式
Select * From
(select * from people) where ROWNUM % 2=0
答案 1 :(得分:1)
没有“每隔一行”这样的东西,因为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
是可选的,但可以在没有它的情况下以任何顺序评估行。