ورود

View Full Version : شماره گذاری یک کوئری در صفحه بندی



khorsandreza
پنج شنبه 04 دی 1393, 13:18 عصر
سلام
دوستان من با استفاده از دستور زیر عملیات صفحه بندی را انجام می دهم کل کار مشکلی ندارم . در هر صفحه بارگذاری شده 5 رکورد را می خوانم حال می خواهم شرط case when در کوئری اعمال کنم درصورتی که ردیف رکورد 1 باشد یک فیلدی با مقدار Right اگر 2 باشد 'Left' اگر سه باشد 'Top' واگر 4 باشد 'bttom' و اگر 5 باشد 'none ' خود بگیرد من این مقادیر را می خواهم بطور مثال در Eval("setitem") استفاده کنم
شکل پروسیجر من چگونه case when در سلکت زیر بنویسم


alter PROCEDURE ShowContentDetails
@Index INT,
@PageSize INT
AS
BEGIN

SELECT * FROM
(SELECT ROW_NUMBER() OVER (ORDER BY pk_id asc) as MyRowNumber,*
FROM ContentDetails) tbContentDetails
WHERE MyRowNumber BETWEEN ( ((@Index - 1) * @PageSize )+ 1) AND @Index*@PageSize
END



و روش فرخوانی
exec ShowContentDetails 3,5

tiphooo
چهارشنبه 10 دی 1393, 16:37 عصر
اگر منظورتان را درست متوجه شده باشم

SELECT *,CASE WHEN MyRowNumber Mod @PageSize=1 THEN 'Right'
WHEN MyRowNumber Mod @PageSize=2 THEN 'Left'
WHEN MyRowNumber Mod @PageSize=3 THEN 'Top'
WHEN MyRowNumber Mod @PageSize=4 THEN 'Bottom'
WHEN MyRowNumber Mod @PageSize=0 THEN 'None'
END
FROM
(SELECT ROW_NUMBER() OVER (ORDER BY pk_id asc) as MyRowNumber,*
FROM ContentDetails) tbContentDetails
WHERE MyRowNumber BETWEEN ( ((@Index - 1) * @PageSize )+ 1) AND @Index*@PageSize