محدود کردن تعداد سطر خروجی در اوراکل ۱۲

در مطلب پیشین در مورد چگونگی محدود کردن تعداد سطرهای خروجی در اوراکل ۱۱ به قبل صحبت کردیم. یکی از تغییراتی که در نسخه اوراکل ۱۲ به بعد معرفی شده است، چگونگی محدود کردن تعداد سطرهای خروجی است. در اوراکل ۱۲ عبارت تازه ای به نام OFFSET و  FETCH با فرمت دستور العمل زیر معرفی شده است که به منظور نمایش N سطر ابتدایی (N-Top) استفاده می شود. روش معرفی شده در اوراکل ۱۲ به بعد، نسبت به روش نسخه پیش بسیار ساده تر است.

مثال – در اوراکل ۱۲ تنها در سطر ابتدایی را نشان دهید. برای این منظور باید از عبارت FETCH FIRST n ROWS ONLY استفاده کنید به طوری که به جای n باید عدد ۱۰ را قرار دهید.

شکل زیر خروجی دستور (کوئری) بالا را نشان می دهد. در مطلب استفاده از نام مستعار در دستور SELECT تابعی به نام ()COUNT را معرفی کردیم که تعداد سطرهای خروجی را محاسبه می کرد. برای تمرین کوئری زیر را اجرا کنید تا ببنید FETCH FIRST 10 ROWS ONLY تنها ۱۰ سطر ابتدایی را برگشت داده است.

خواندن مطلب های توابع تجمیعی در SQL و جمع بندی توابع تجمیعی در SQL برای آشنایی با تابع ()COUNT

محدودیت سطرها در زمان استفاده از عبارت ORDER BY

در دو مطلب مرتب سازی سطرها در کوئری های SQL و مرتب سازی خروجی بر اساس موقعیت ستون در SQL در مورد چگونگی مرتب سازی سطرها توسط عبارت ORDER BY صحبت شده است. چیزی که باید توجه کنید این است که در کوئری نخست در همین مطلب، چون صراحتا سطرهای خروجی را مرتب سازی نکرده ایم، پس ترتیب سطرها بر اساس ترتیبی است که به درون جدول درج (Insert) شده اند. ولی اگر مطابق کوئری و شکل زیر (۲) از عبارت ORDER BY استفاده کرده باشید، می توانید نتیجه شکل زیر با شکل بالا (۱) را مقایسه کنید.

در کوئری بالا مرتب سازی به صورت صعودی بود ولی اگر شما هیمن کوئری بالا را به صورت زیر تغییر دهید، یعنی توسط عبارت DESC مرتب سازی را نزولی کنید، خواهید دید که نتیجه ۱۰ سطر ابتدایی نیز تغییر خواهد کرد. لطفا کوئری زیر را اجرا و نتیجه را با شکل های ۱ و ۲ مقایسه کنید.

مثال – تنها سطر اول کوئری را نمایش دهید.

هر دو کوئری بالا سطر اول را نمایش می دهند. توجه کنید در کوئری دوم عبارت FETCH FIRST ROW ONLY استفاده شده است ولی در دومی FETCH FIRST 10 ROWS ONLY استفاده شده است، یعنی در اولی از ROWS و در دومی از ROW استفاده شده است.