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