加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sqlserver 循环查询

发布时间:2020-12-12 14:30:10 所属栏目:MsSql教程 来源:网络整理
导读:在项目中。碰到一个问题。。 如下图。蓝色的如公务员、基础教育等属于一张表Category。小黑色的是从表TB_Classinfo中查出。两者通过category对应。通过一条sql语句实现。如下 with topc AS ( ?SELECT * from( ?select top 4? ROW_NUMBER() over (order by Or

在项目中。碰到一个问题。。

如下图。蓝色的如公务员、基础教育等属于一张表Category。小黑色的是从表TB_Classinfo中查出。两者通过category对应。通过一条sql语句实现。如下

with topc AS
(
?SELECT * from(
?select top 4? ROW_NUMBER() over (order by Orders desc) as rownum,ID from Category_30
?) t1
)
select t.Class_Name,t.CreateTime,b.CategoryName from (
select top 5 Class_Name,Category,CreateTime from TB_ClassInfo
where? Category in (select id from topc where rownum=1)
union
select top 5? Class_Name,CreateTime from TB_ClassInfo
where? Category in (select id from topc where rownum=2)
union
select top 5 Class_Name,CreateTime from TB_ClassInfo
where? Category in (select id from topc where rownum=3)
union
select top 5 Class_Name,CreateTime from TB_ClassInfo
where? Category in (select id from topc where rownum=4)
) t
inner join Category_30 b
on t.Category=b.ID

简单方式:但是不能保证每一个分类都是取得5条数据。

select top 20 t.Class_Name,b.CategoryName from (
select Class_Name,CreateTime from TB_ClassInfo
where? Category in (SELECT ID from(
?select top 4? ROW_NUMBER() over (order by Orders desc) as rownum,ID from Category_30
?order by Orders desc) t1)
) t
inner join Category_30 b
on t.Category=b.ID

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读