Filtering and Sorting data With Offset-Fetch

يمكننا من خلال هذة الدوال Offset-Fetch  ترتيب وفلترة محتويات الجداول بالاعتماد على ارقام الصفوف ومواقعها بأستخدام دالتي ال Offset-Fetch ان ترتيب هذين الدالتين يجب ان يأتي  بعد جملة ال Order By  في جملة الاستعلام حيث ان ال Order by  سوف تقوم بلعب دورين الاول تخبر دالة Offset-Fetch اي الاعمدة التي سوف تعتمدا في عملية التصنيف والدور الثاني اكيد ترتيب النتائج التي سوف تعيدها دالة ال Offset-Fetch

الصيغة العامة لل Offset-Fetch

SELECT orderid, orderdate, custid, empid

FROM Sales.Orders

ORDER BY orderdate DESC, orderid DESC

OFFSET 50 ROWS FETCH NEXT 25 ROWS ONLY;

وكانة المبرمج يامر ال SQL  ان يقوم بالقفز على 50 row ومن ثم جلب ال 25  row  القادمة الموجودة في الجدول

طبعاً من الممكن ان لا نقوم بتجاوز السطور على سبيل المثال نري ان نقول الى SQL  لاتقوم بتجاوز ال 50  row  في المثال الاول فأننا نستخدم الرقم 0 دلالة على عدم تجاوز الصفوف

من الممكن الاستغناء عن ال Fetch وباذلك يصبح معنى جملة الاستعلام تجاوز ال row  المحددة وجلب ماتبقى من الجدول

وبذالك تصبح جملة الاستعلام كالتالي

SELECT orderid, orderdate, custid, empid

FROM Sales.Orders

ORDER BY orderdate DESC, orderid DESC

OFFSET 50 ROWS ;

 

ملاحظة اخيرة من الممكن لهذة الدوال استخدام براميترات او تعابير رياضية كالمثال التالي

DECLARE @pagesize AS BIGINT = 25, @pagenum AS BIGINT = 3;

SELECT orderid, orderdate, custid, empid

FROM Sales.Orders

ORDER BY orderdate DESC, orderid DESC

OFFSET (@pagesize – 1) * @pagesize ROWS FETCH NEXT @pagesize ROWS ONLY;

 

 

 

Advertisements

شاركنا بارد

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s