MSSQL - show data per page

- This statement will return record 1 to 20.

SELECT * FROM
(
SELECT row_number() OVER (ORDER BY id) AS rownum, *
FROM example_table_a
) AS A
WHERE A.rownum BETWEEN (1) AND (20)


- If you want the next 20, your where criteria should be:

WHERE A.rownum BETWEEN (21) AND (40)


- Finally, SQL statement in your C# code will be:

public String CreateSQL(Int32 pageNo, Int32 pageSize)
{
     StringBuilder _sbSQL = new StringBuilder();
     Int32 _offset = 1+ ((pageNo-1) * pageSize);

     _sbSQL.Append(" SELECT * FROM ");
     _sbSQL.Append(" ( ");
     _sbSQL.Append(" SELECT row_number() OVER (ORDER BY id) AS rownum, * ");
     _sbSQL.Append(" FROM example_table_a ");
     _sbSQL.Append(" ) AS A ");
     _sbSQL.Append(" WHERE A.rownum BETWEEN (" + _offset +") AND (" + (_offset-1) + " + " + pageSize + ")");

     return _sbSQL.ToString();
}

Popular posts from this blog

SAP CPI - Loop Process Call with SuccessFactor (oData V2)

Setting IntelliJ IDEA to run Groovy Script

C# - BASE64 to Image