首页 > 开发 > 综合 > 正文

sql-分组排序

2024-07-21 02:50:06
字体:
来源:转载
供稿:网友
sql-分组排序

我们有一张数据表,需要按照【类别】分组按照【时间】排序,并分组显示各自的序号。

表Archive

ArchiveIdvarchar(30)文章编号非数字
CategoryIdint文章分类Id
StatusIdint状态,-1表示删除,0表示新建,1表示启用
PubTimeDateTime发布时间

select top 100 ArchiveId,StatusId,PubTime,CategoryId from Archive where StatusId>=0order by PubTime desc

查询结果:

按照【类别】分组按照【时间】排序,并分组显示各自的序号。具体做法:
--子表with asm as(select ArchiveId,StatusId,PubTime,CategoryId from Archive where StatusId>=0)--查询-------------------select bb.ArchiveId,bb.StatusId,bb.PubTime,bb.CategoryId,--序号列生成   (select COUNT(1) from asm where bb.CategoryId=asm.CategoryId and  bb.PubTime>=asm.PubTime) rowid --插入临时表into #temp  from Archive bbwhere bb.StatusId>=0 

查询临时表:

select top 200 * from #temp  order by CategoryId desc,rowid asc

见查得结果:


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表