Quantcast
Viewing latest article 31
Browse Latest Browse All 35

Answer by Greg Hurlman for How to select the nth row in a SQL database table?

Here's a generic version of a sproc I recently wrote for Oracle that allows for dynamic paging/sorting - HTH

-- p_LowerBound = first row # in the returned set; if second page of 10 rows,--                this would be 11 (-1 for unbounded/not set)-- p_UpperBound = last row # in the returned set; if second page of 10 rows,--                this would be 20 (-1 for unbounded/not set)OPEN o_Cursor FORSELECT * FROM (SELECT    Column1,    Column2    rownum AS rnFROM(    SELECT        tbl.Column1,        tbl.column2    FROM MyTable tbl    WHERE        tbl.Column1 = p_PKParam OR        tbl.Column1 = -1    ORDER BY        DECODE(p_sortOrder, 'A', DECODE(p_sortColumn, 1, Column1, 'X'),'X'),        DECODE(p_sortOrder, 'D', DECODE(p_sortColumn, 1, Column1, 'X'),'X') DESC,        DECODE(p_sortOrder, 'A', DECODE(p_sortColumn, 2, Column2, sysdate),sysdate),        DECODE(p_sortOrder, 'D', DECODE(p_sortColumn, 2, Column2, sysdate),sysdate) DESC))WHERE    (rn >= p_lowerBound OR p_lowerBound = -1) AND    (rn <= p_upperBound OR p_upperBound = -1);

Viewing latest article 31
Browse Latest Browse All 35

Trending Articles