Getting alternate rows from a table
How can I get alternane rows (records) from a table? Or, how can I get the 1st, 3rd, 5th... 91st, 97th rows or records from a table?
Suppose T is your table. The way to get your alternate rows is to use the in-line view technique like this:
select a.* from (select rownum as row_num,T.* from T) a where mod (a.row_num,2) = 1;
For More Information
- Dozens more answers to tough Oracle questions from Eli Leiba are available here.
- The Best Oracle Web Links: tips, tutorials, scripts, and more.
- Have an Oracle or SQL tip to offer your fellow DBAs and developers? The best tips submitted will receive a cool prize. Submit your tip today!
- Ask your technical Oracle and SQL questions -- or help out your peers by answering them -- in our live discussion forums.
- Ask the Experts yourself: Our SQL, database design, Oracle, SQL Server, DB2, metadata, object-oriented and data warehousing gurus are waiting to answer your toughest questions.