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();
}
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();
}