首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从每一类别的照片中选择一行

从每一类别的照片中选择一行
EN

Stack Overflow用户
提问于 2011-10-14 20:53:29
回答 1查看 95关注 0票数 1

我有两个桌子古迹和照片

纪念碑台

Monument_Id int

MonumentName nvarchar

照片表

Photo_Id int

Monument_Id整型

URL nvarchar

在一些纪念碑中有50多幅图片,有些是空的。我只想显示每个纪念碑的一个图像,而忽略没有图像的纪念碑。

我尽力了,但没能成功。

问好谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-14 20:58:25

您没有指定您希望拥有的最多50幅图像中的,但是类似于这些内容的内容将有效:您可以在ROW_NUMBER函数中使用CTE (公共表表达式):

代码语言:javascript
复制
;WITH OneImagePerMonument AS
(
   SELECT 
       m.Monument_ID, m.MonumentName, p.Photo_Id, p.URL,
       ROW_NUMBER() OVER(PARTITION BY m.Monument_ID ORDER BY Photo_Id DESC) AS 'RowNum')
   FROM dbo.Monument m
   INNER JOIN dbo.Photos p ON m.Monument_Id = p.Monument_Id
)
SELECT 
   Monument_ID, MonumentName, Photo_Id, URL
FROM OneImagePerMonument
WHERE RowNum = 1

这个CTE通过Monument_Id“分区”您的数据,对于每个分区,ROW_NUMBER函数从1开始按Photo_Id DESC排序,为每个分区分配序列号-因此最近的行得到RowNum = 1 (对于每个UserID),这就是我在select语句之后从RowNum = 1中选择的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7773439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档