SQL SERVER
odd :
select * from(
SELECT col1, col2, ROW_NUMBER() OVER(ORDER BY col1 DESC) AS 'RowNumber',
FROM table1
) d where (RowNumber % 2) = 1
even :
select * from(
SELECT col1, col2, ROW_NUMBER() OVER(ORDER BY col1 DESC) AS 'RowNumber',
FROM table1
) d where (RowNumber % 2) = 0
CTE
WITH r_set AS ( SELECT *, ROW_NUMBER() OVER(ORDER BY CustomerID) AS rn FROM Sales.Customer ) SELECT * FROM r_set WHERE rn % 2 = 0Assuming 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
ORACLE
select * from emp where (rowid,0) in (select rowid, mod(rownum,2) from emp) Output:- 2 4 6Select * from emp where (rowid,1) in (select rowid, mod(rownum,2) from emp); Output: 1,3,5..
No comments:
Post a Comment