• 0
محمدهلال

هل يوجد داله فى sql server مثل limit فى mysql؟

سؤال

بسم الله الرحمن الرحيم

هل يوجد داله فى sql server مثل limit فى mysql؟

اريد ان اقسم النتائج من الجدول عشان استخدمها فى تعدد الصفحات فل مش عارف اعمل تقسيم ازى بال sql server الى لقيتها داله top

عندى مثلا فى الجدول 1000 سجل واريد

يجيب من 100 الى 150 يعنى 50 سجل الى يجبهم فما هى طريقة عمل هذا؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

7 إجابة على هذا السؤال .

  • 0

ابحث عن Paging

وهذه احدى النتائج

Efficient Paging

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ابحث عن Paging

وهذه احدى النتائج

Efficient Paging

جزاك الله الف خير اخي الكريم

انا اقصد بدون استخدام الحرند فيو

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
انا اقصد بدون استخدام الحرند فيو

ارجو ان تقرأ المقالة السابقة مرة اخرى .

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

يوجد طريقة غير مباشرة و لكن تحتاج منك بعض التفكير .. شخصيا استخدمتها كثيرا :


Set Rowcount 2
Select * From MyTable

Set Rowcount 0
Select * From MyTable

طبعا مع شوية Order By ..

.. لا تنسى طبعا أن هناك ما يسمى ب Top في عالمنا الجميل :)

بالتوفيق أخي الكريم

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

TOP لا تقوم مقام LIMIT


[LIMIT {[offset,] row_count | row_count OFFSET offset}]

اي تجاوز عدد من الصفوف وثم ارجاع عدد محدد

بينما TOP ترجع عدد محدد من الصفوف .

في SQL 2011 يوجد بديل

Server Side Paging in SQL Server 2011 – A Better Alternative

تم تعديل بواسطه TareqVB
اضافة SQL 2011
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بس يا أخي طارق يمكن استخدام الـ Top لتحقيق المطلوب و لكن تحتاج إلى شوية تفكير .. أنا كنت بزماني مقتنع متلك إنو ما بتنحل بالـ Top.. بكل الأحوال كتبت عالسريع دالة لجرب فيها .. بس يمكن يكون بدها تعديلات لحتى تصير مثالية أكثر .. أي تعليق منكم مرحب به



Use tempdb
go

Create Table Test(id int identity, Name Nvarchar(50))
go

Insert Into Test Select 'Ahmad'
Insert Into Test Select 'Samer'
Insert Into Test Select 'Hany'
Insert Into Test Select 'Saad'
Insert Into Test Select 'Omar'
Insert Into Test Select 'Hala'
Insert Into Test Select 'Tala'
Insert Into Test Select 'Sameera'
Insert Into Test Select 'Huda'
Insert Into Test Select 'Ruba'
Insert Into Test Select 'Ameer'
Insert Into Test Select 'Sameer'

go

Create Proc Test_Select
@Top int = 3,
@section int = 0

AS

-- without Top
Select * From Test
Where id between (@Top * @section) + 1 And @Top * ( 1 + @Section )

-- With Top
Select Top(@Top) * From Test
Where id > @Top * @section

GO


exec Test_Select @section = 0
exec Test_Select @section = 1
exec Test_Select @section = 2

تم تعديل بواسطه imadouzoun
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .