I have t1 table with roll and name and table t2 have roll and marks.
now i have to select top of 7th marks in first row and top 10th marks in 2nd row and also remaining records will print after 3rd row.
what i have to do.
i have use join but i dont know how to use where and order by with join. and also how to select multiple queries to show the data simultanously
Loading

Posted Jul 29, 2013, 7:13 AM
//Returns top 7th record
SELECT roll, mark
FROM ( SELECT roll, mark, RANK() OVER (ORDER BY mark DESC) rank1
FROM emp )
WHERE rank1 = 7
union
//Returns top 10th record
SELECT roll, mark
FROM ( SELECT roll, mark, RANK() OVER (ORDER BY mark DESC) rank1
FROM emp )
WHERE rank1 = 10
union
//returns all the records except 7th and 10th record
SELECT roll, mark
FROM ( SELECT roll, mark, RANK() OVER (ORDER BY mark DESC) rank1
FROM emp )
WHERE rank1 != 7 rank1 != 10
I have not tested this.
Iftikar HussainPosted Jul 29, 2013, 7:11 AM
Try like this
Regards,
Iftikar
Khargesh RajputPosted Jul 29, 2013, 7:08 AM
Posted Jul 29, 2013, 6:54 AM
SELECT roll, mark
FROM ( SELECT roll, mark, RANK() OVER (ORDER BY mark DESC) rank1
FROM emp )
WHERE rank1 = 7
//Returns top 10th record
SELECT roll, mark
FROM ( SELECT roll, mark, RANK() OVER (ORDER BY mark DESC) rank1
FROM emp )
WHERE rank1 = 10
//returns all the records except 7th and 10th record
SELECT roll, mark
FROM ( SELECT roll, mark, RANK() OVER (ORDER BY mark DESC) rank1
FROM emp )
WHERE rank1 != 7 rank1 != 10
I have not tested this.