Misalnya saya memiliki query
Select colA1, colA2, colA3 from tabelA
Untuk dibuat paging, harus dipilih suatu kolom untuk dasar
pengurutannya (misalkan colA1) maka menjadi
With PagingList
as
(SELECT
ROW_NUMBER() OVER (ORDER BY List.colA1 ASC
) as [Number],[List].* FROM
(Select colA1,
colA2, colA3 from tabelA
) as List
)
Select colA1,
colA2, colA3 from PagingList
where [Number]
between #range1# and #range2#
Jika melibatkan tabel lain juga bisa, bentuknya menjadi
seperti ini: (misalkan dasar urut berdasarkan colA1)
With PagingList as (ROW_NUMBER() OVER (ORDER BY List.colA1
ASC
) as [Number], [List].* from
( select colA1, colB1, colC1 from tabelA,tabelB,tabelC where
colA2=colB2 and colB3=colC2
) as Gabungan
Select colA1, colB1, colC1 from Gabungan
Nah #range1# dan #range2# nanti diisi dengan angka, misalkan
kita ingin menampilkan record dari row 1 sampai 10, 11 sampai 20, 21 sampai 30.
#range1# dan #range2# disini akan menjadi parameter nantinya di SQL. Dalam
paging kita mengenal yg namanya pageindex dan pagesize. Row 1 sampai 10 pageindex-nya
adalah 1 (halaman pertama) dan pagesizenya=10.
Nilai pagepointer (disebut pageindex) dan pagesize akan
dikirim melalui parameter, untuk menentukannya, maka coding di C#-nya menjadi:
int range1,
range2;
range1 =
((pagepointer - 1) * pagesize) + 1;
range2 =
(pagepointer * pagesize);