how to show only even or odd rows in sql server 2008?

前端 未结 16 1435
甜味超标
甜味超标 2020-12-05 13:53

i have a table MEN in sql server 2008 that contain 150 rows.

how i can show only the even or only the odd rows ?

thank\'s in advance

相关标签:
16条回答
  • 2020-12-05 14:33
      SELECT * FROM (SELECT ROW_NUMBER () OVER (ORDER BY sal DESC) row_number, sr,sal FROM empsal) a WHERE (row_number%2) = 1
    

    and

          SELECT * FROM (SELECT ROW_NUMBER () OVER (ORDER BY sal DESC) row_number, sr,sal FROM   empsal) a WHERE (row_number%2) = 0
    
    0 讨论(0)
  • 2020-12-05 14:43

    Assuming your table has auto-numbered field "RowID" and you want to select only records where RowID is even or odd.

    To show odd:

    Select * from MEN where (RowID % 2) = 1
    

    To show even:

    Select * from MEN where (RowID % 2) = 0
    
    0 讨论(0)
  • 2020-12-05 14:44
    select * from Tablename 
    where id%2=0
    
    0 讨论(0)
  • 2020-12-05 14:45

    for SQL > odd:

    select * from id in(select id from employee where id%2=1)
    

    for SQL > Even:

    select * from id in(select id from employee where id%2=0).....f5
    
    0 讨论(0)
  • 2020-12-05 14:48

    Check out ROW_NUMBER()

    SELECT t.First, t.Last
    FROM (
        SELECT *, Row_Number() OVER(ORDER BY First, Last) AS RowNumber 
                --Row_Number() starts with 1
        FROM Table1
    ) t
    WHERE t.RowNumber % 2 = 0 --Even
    --WHERE t.RowNumber % 2 = 1 --Odd
    
    0 讨论(0)
  • 2020-12-05 14:50
    SELECT *
      FROM   
      ( 
         SELECT rownum rn, empno, ename
         FROM emp
      ) temp
      WHERE  MOD(temp.rn,2) = 1
    
    0 讨论(0)
提交回复
热议问题