PDA

View Full Version : خروجی ندادن پروسیجر



mahsab
سه شنبه 18 فروردین 1394, 20:11 عصر
سلام من پروسیجر زیر رو ک برا pagination هست می خام استفاده کنم اما خروجی رو نشون نمی ده ALTER procedure [dbo].[pagination_News]@flag int
as
DECLARE @PageNumber INT
DECLARE @RowsPage INT
SET @PageNumber = 2
SET @RowsPage = 5
select * from Table_News
where News_Flag=@flag
order by News_DateEn
OFFSET ((@PageNumber - 1) * @RowsPage) ROWS
FETCH NEXT @RowsPage ROWS ONLY;

اما وقتی دستور where رو حذف می کنم خروجی داره
و یا وقتی دستور offset رو پاک می کنم هم خروجی داره
کلا وقتی دوتا دستور where و offset رو با هم به کار می برم خروجی رو بر نمی گردونه ؟

چرااااااا ؟

مهدی نان شکری
سه شنبه 18 فروردین 1394, 22:51 عصر
با سلام
بدون OFFSET ((@PageNumber - 1) * @RowsPage) ROWS
FETCH NEXT @RowsPage ROWS ONLY; چه تعداد رکورد برمیگردد؟
به PageNumber و RowsPage که در اینجا 2 و 5 می باشند دقت کنید که رکورد های 6 تا 10 را نمایش خواهد داد یعنی می بایست خروجی دستور Select شما باید در بر گیرنده بیش از 5 عدد رکورد باشد تا نتیجه قابل نمایش باشد.

mahsab
چهارشنبه 19 فروردین 1394, 12:14 عصر
مشکل تعداد رکوردایی بود که تو شرط where صادق باشه .:لبخند: