前言
好長時間沒摸數據庫了,周末在家寫了個報表的存儲過程,一時間對使用存儲過程實現分頁的同時并計算出記錄總數不知道怎么更好的去實現。按照我們正常的業務邏輯,存儲過程數據首先是分頁,其次接受若干查詢條件,返回分頁結果集的同時還需要返回記錄總數給客戶端。
我對于這樣一個業務存儲過程總結如下:1、內核層,通常也就是要查詢的字段或者要計算的字段,這部分單獨拿出來。 2、查詢條件層。 如果內核只是查詢一些字段的話,條件可以放在查詢條件層拼接。 如果內核層完全是統計業務邏輯,那么查詢條件則必須要放在內核層,像我們常用的SUM、GROUPBY 業務。 3、添加分頁參數(也就是我們現在多數用的ROW_NUMBER添加rn參數)。 存儲過程里我們一般會單獨聲明每個部分的變量用于執行時拼接。
存儲過程