لغه ال T-SQL تمكنك من حل معظم مشاكلك بشكل جيد
ومنها Paginating Through a Result Set
المشكله
انت تريد مثلا التصفح خلال الResult Set الناتجه من Query معين بحيث تعرض البيانات مثلا 10 سجل في كل مره عن طريق زر التالي و ايضا الرجوع عن طريق زر السابق و هكذا
الحل
اولا نتعرف علي ال ROW_NUMBER Window Function
هذه الداله تستخدم لاعطاء رقم وحيد لكل سجل في الاستعلام
بفرض ان الاستعلام علي جدول واحد tab و به عمود واحد data
و نريد استرجاع بيانات الجدول و ترقيم كل سجل بالترتيب ابيتداء من 1
select row_number( ) over (order by data) as rn,data from tab
لقد حصلنا الان علي تسلسل لكل سجل
كيف استخدمه لتحديد عدد و مدي السجلات المطلوبه
نقوم بتحديد ذلك باستخدام WHERE Clause
مثلا السجلات من 1 ال 10
select row_number( ) over (order by data) as rn,data from tab where rn between 1 and 10
الان بفرض ان الاستعلام الاصلي
select data from tab
نستبدل الجدول tab بال In Line View السابق او الاستعلام السابق
فيكون
الحل
select data from ( select row_number( ) over (order by data) as rn,data from tab where rn between 1 and 10 )
و بتغير القيم تستطيع تغير عدد و مدي السجلات
و ذلك بجعل هذه القيم متغيرات مثلا
ووضع الاستعلام في اجراء مخزن
لو تحتاج التسلسل فلا داعي لعمل subQuery
select row_number( ) over (order by data) as rn,data from tab where rn between 1 and 10
للحديث بقيه ان شاء الله