How to retrive odd number of rows in my table

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • v2naveen
    New Member
    • Feb 2008
    • 5

    How to retrive odd number of rows in my table

    Suppose in my EMP table there are 10 rows.

    Now i want to display 1st row,3rd row,5th row,7th row, 9 th row
    please let me know how to retrive this type of data..


    Thanks in advance

    regards
    Naveen
  • debasisdas
    Recognized Expert Expert
    • Dec 2006
    • 8119

    #2
    Kindly post how you have tried to solve this.

    Comment

    • v2naveen
      New Member
      • Feb 2008
      • 5

      #3
      Originally posted by debasisdas
      Kindly post how you have tried to solve this.
      Suppose in EMP table there are 10 rows ..say

      ename eno hiredate
      raju 1 12/jan/2004
      manu 2 13/jan/2005
      jan 3 01/jan/2005
      manj 5 09/12/2005
      kala 6 9/jan/2007 etc 10 rows

      now i want 1 row,3rdrow,5th row,7th row,9th row

      regards
      Naveen

      Comment

      • amitpatel66
        Recognized Expert Top Contributor
        • Mar 2007
        • 2358

        #4
        Originally posted by v2naveen
        Suppose in EMP table there are 10 rows ..say

        ename eno hiredate
        raju 1 12/jan/2004
        manu 2 13/jan/2005
        jan 3 01/jan/2005
        manj 5 09/12/2005
        kala 6 9/jan/2007 etc 10 rows

        now i want 1 row,3rdrow,5th row,7th row,9th row

        regards
        Naveen
        Try this:

        [code=oracle]

        SELECT * FROM
        (SELECT x.*, ROW_NUMBER() OVER(ORDER BY eno ASC) rn FROM emp x)
        WHERE MOD(rn,2) <> 0

        [/code]

        Comment

        • subashsavji
          New Member
          • Jan 2008
          • 93

          #5
          Originally posted by debasisdas
          Kindly post how you have tried to solve this.
          may this will help you

          select * from emp where (rowid,1) in (select rowid, mod(rownum,2) from emp);
          //
          SELECT *
          FROM ( SELECT rownum rn, empno, ename FROM emp) temp
          WHERE MOD(temp.rn,(3-1)) = 0

          Comment

          • debasisdas
            Recognized Expert Expert
            • Dec 2006
            • 8119

            #6
            Originally posted by v2naveen
            Suppose in EMP table there are 10 rows ..say

            ename eno hiredate
            raju 1 12/jan/2004
            manu 2 13/jan/2005
            jan 3 01/jan/2005
            manj 5 09/12/2005
            kala 6 9/jan/2007 etc 10 rows

            now i want 1 row,3rdrow,5th row,7th row,9th row

            regards
            Naveen
            I asked for what you have tried not what you want ?

            FOR REFERENCE OF ALL (THOSE WHO POSTED HERE):--------WHEN MODERATOR IS ASKING THE POSTER WHAT S/HE HAS TRIED TO SOLVE THE PROBLEM OTHERS ARE NOT SUPPOSED TO SUPPLY THE ANSWER TILL THE ACTUAL POSTER REPLIES.

            Comment

            • v2naveen
              New Member
              • Feb 2008
              • 5

              #7
              Originally posted by subashsavji
              may this will help you

              SELECT *
              FROM ( SELECT rownum rn, empno, ename FROM emp) temp
              WHERE MOD(temp.rn,(3-1)) = 0
              First Iam creating view based on EMP table like

              create view v1 as
              select rownum as rank,
              ename,
              eno
              from emp;
              then after i retrive data from the view table

              select ename,
              eno,
              from v1
              where rank in (1,3,5,7,9);

              regards
              Naveen

              Comment

              • amitpatel66
                Recognized Expert Top Contributor
                • Mar 2007
                • 2358

                #8
                Originally posted by v2naveen
                First Iam creating view based on EMP table like

                create view v1 as
                select rownum as rank,
                ename,
                eno
                from emp;
                then after i retrive data from the view table

                select ename,
                eno,
                from v1
                where rank in (1,3,5,7,9);

                regards
                Naveen
                Why you need to create a view for this?
                An inline view as shown in the above posts will do the job!!

                Comment

                • subashsavji
                  New Member
                  • Jan 2008
                  • 93

                  #9
                  Originally posted by v2naveen
                  Suppose in my EMP table there are 10 rows.

                  Now i want to display 1st row,3rd row,5th row,7th row, 9 th row
                  please let me know how to retrive this type of data..


                  Thanks in advance

                  regards
                  Naveen
                  may this will help you
                  [code=oracle]

                  select * from emp where (rowid,1) in (select rowid, mod(rownum,2) from emp);
                  //
                  SELECT *
                  FROM ( SELECT rownum rn, empno, ename FROM emp) temp
                  WHERE MOD(temp.rn,(3-1)) = 0

                  [/code]
                  Last edited by amitpatel66; Feb 8 '08, 11:50 AM. Reason: code tags again

                  Comment

                  Working...