View Full Version : ROW_NUMBERتابع
ferizakhar
دوشنبه 09 آذر 1388, 09:17 صبح
تابع row_nummber در sql 2005 کار می کنه ,ولی در sql 2000 جواب نمی ده.
بدنه تابع رو در sql 2000 می خوام .کسی می تونه کمک کنه؟
:گریه::گریه:
amin_alexi
دوشنبه 09 آذر 1388, 09:36 صبح
سلام
row_nummber در 2000 وجود نداره و از 2005 اومده اگه يك Search بزني مي توني درباره Row_number در 2000 هم مطلب پيدا مي كني !
ferizakhar
دوشنبه 09 آذر 1388, 10:38 صبح
search که زیاد زدم ولی همش با 2005 مثال پیدا میشه
amin_alexi
دوشنبه 09 آذر 1388, 10:58 صبح
پس معلومه خيلي Search نزدي!
http://www.barnamenevis.org/forum/showthread.php?p=827463
ferizakhar
دوشنبه 09 آذر 1388, 21:24 عصر
اقا ممنون از توجهت
ولی جواب نداد
بازم ممنون
AminSobati
دوشنبه 09 آذر 1388, 23:03 عصر
پست چهارم در لینک فوق باید مشکل رو حل کنه. شاید درست پیاده سازی نکردین
ferizakhar
سه شنبه 10 آذر 1388, 08:33 صبح
سلام
درست پیاده سازی کردم ولی نشد.
داردم کتاب Apress.Beginning.ASP.NET.E.Commerce.In.C.Sharp.Fro m.Novice.To.Professional.Mar.2009
رو می خونمو پیاده سازی می کنم.ولی تو کتاب از SQL 2005 استفاده کرده که تابع row_number()هم استفاده شده.
یه sp نوشته که اینه
CREATE PROCEDURE CatalogGetProductsOnFrontPromo
(@DescriptionLength INT,
@PageNumber INT,
@ProductsPerPage INT,
@HowManyProducts INT OUTPUT)
AS
-- declare a new TABLE variable
DECLARE @Products TABLE
(RowNumber INT,
ProductID INT,
Name NVARCHAR(50),
Description NVARCHAR(MAX),
Price MONEY,
Thumbnail NVARCHAR(50),
Image NVARCHAR(50),
PromoFront bit,
PromoDept bit)
-- populate the table variable with the complete list of products
INSERT INTO @Products
SELECT ROW_NUMBER() OVER (ORDER BY Product.ProductID),
ProductID, Name,
CASE WHEN LEN(Description) <= @DescriptionLength THEN Description
ELSE SUBSTRING(Description, 1, @DescriptionLength) + '...' END
AS Description, Price, Thumbnail, Image, PromoFront, PromoDept
FROM Product
WHERE PromoFront = 1
-- return the total number of products using an OUTPUT variable
SELECT @HowManyProducts = COUNT(ProductID) FROM @Products
-- extract the requested page of products
SELECT ProductID, Name, Description, Price, Thumbnail,
Image, PromoFront, PromoDept
FROM @Products
WHERE RowNumber > (@PageNumber - 1) * @ProductsPerPage
AND RowNumber <= @PageNumber * @ProductsPerPage
حالا من می خوام به جای این تابع جایگزینو بنویسم.
ممنون از توجهت.
محمد سلیم آبادی
سه شنبه 10 آذر 1388, 15:46 عصر
سلام دوست عزیز،
بجای عبارت Insert کد پست قبلی از کد زیر استفاده کنید:
INSERT INTO @Products
SELECT RowNumber = (Select Count(*)
From Product as P1
Where P1.ProductID <= P2.ProductID),
--ROW_NUMBER() OVER (ORDER BY Product.ProductID),
ProductID, Name,
CASE WHEN LEN(Description) <= @DescriptionLength THEN Description
ELSE SUBSTRING(Description, 1, @DescriptionLength) + '...' END
AS Description, Price, Thumbnail, Image, PromoFront, PromoDept
FROM Product as P2
WHERE PromoFront = 1
ferizakhar
سه شنبه 10 آذر 1388, 21:54 عصر
اقا ممنون
یه جواب نصفه نیمه ا ی داد
ممنون از توجهت
:لبخندساده:
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.