0
我嘗試做一個分頁功能與圖像的行,它工作得很好,當我通過這樣做的順序:排除在SQL Server 2008中查詢
WHERE tblUploadedImages.ImageID NOT IN (
SELECT TOP (@Exclude) ImageID FROM tblUploadedImages
ORDER BY tblUploadedImages.Added)
ORDER BY tblUploadedImages.Added
工程。但是當我根據有多少人喜歡這些圖像來顯示圖像時,有些圖像不會被排除。
ALTER PROCEDURE GetMostLikedImages
@Exclude INT
AS
SELECT TOP (10)
(SELECT COUNT(DISTINCT UserID)
FROM tblLike
WHERE tblUploadedImages.ImageID = tblLike.ImageID) AS LikeCount,
(SELECT COUNT(ImageID)
FROM tblUploadedImages) AS ImageCount,
tblUploadedImages.ImgUrl,
tblUploadedImages.ImageID
FROM
tblUploadedImages
WHERE
tblUploadedImages.ImageID NOT IN
(SELECT TOP (@Exclude)
(SELECT COUNT(DISTINCT UserID)
FROM tblLike
WHERE tblUploadedImages.ImageID = tblLike.ImageID) AS LikeCount
ORDER BY LikeCount DESC, tblUploadedImages.Added)
ORDER BY
LikeCount DESC, tblUploadedImages.Added
有人知道我可以做,如果我通過LikeCount
(即喜歡的圖片有多少人)
爲什麼不分頁使用CTE和ROW_NUMBER()? – cairnz 2012-04-21 10:10:50
我認爲這樣會更容易... – user1007103 2012-04-21 10:14:07
謝謝,這解決了我的問題。我搜索並找到了一些sampelcodes。 (http://sqlserverplanet.com/sql/pagination-using-rownumber)我改變了我的查詢使用CTE和ROW_NUMBER()。如果你把它寫成答案,我會檢查它。 – user1007103 2012-04-21 11:17:41