SQL分頁很多人都碰到過,把項目中感覺比較方便的案例拿出來給大家分享下
string sql = SqlSplitPage(strSql.ToString(), pageIndex, pageSize, " TIME asc ");
/// <summary>
/// SQL分頁
/// </summary>
/// <param name="strSql">查詢SQL</param>
/// <param name="pageIndex">第幾頁</param>
/// <param name="pageSize">每頁多少條</param>
/// <param name="orderColumn">排序字段</param>
/// <returns></returns>
public string SqlSplitPage(string strSql, int pageIndex, int pageSize, string orderColumn)
{
string SqlSplit = string.Format(@" SELECT * FROM
( SELECT ROW_NUMBER() OVER(ORDER BY {1} ) ROWNU, TB.* FROM ({0}) TB ) A
WHERE 1=1 ",
strSql,
orderColumn
);
string dataSql = string.Format(@" {0} AND ROWNU BETWEEN {1} AND {2} ", SqlSplit, (pageIndex - 1) * pageSize + 1, pageIndex * pageSize);
return dataSql;
千萬數據 一頁顯示二十條 在sql server 查詢時間是 18 19秒
