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