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

CSharp基础起步第二十期---SqlServer 基础08(子查询,分页查询

发布时间:2020-12-12 13:07:21 所属栏目:MsSql教程 来源:网络整理
导读:1. 子查询 在一个sql语句中嵌入了一个查询语句 分为:相关子查询,独立子查询 运算符:= in exists 练习:分页查询 提示:使用函数row_number 2.子查询实例 -----------1.查询出班级中所有24岁的男生(子查询)-------------------- select * from (select * f


1.子查询

在一个sql语句中嵌入了一个查询语句

分为:相关子查询,独立子查询

运算符:= in exists

练习:分页查询

提示:使用函数row_number


2.子查询实例

-----------1.查询出班级中所有24岁的男生(子查询)--------------------

select * from (select * from student where TSGender=1) as stu where TSAge>24


-----------2.查询出高一三班和高二二班的所有学生(子查询)------------

select * from student where TClassId in

(select tclassid from TblClass where TClassName='高一三班' or TClassName='高二二班')


-----------3.查询出的总人数,男同学多少人,数学平均成绩(子查询)------

select?

总人数=(select count(*) from student),

男同学的人数=(select COUNT(*) from student where TSGender=1),

数学的平均成绩=(select AVG(TSMath) from TblScore)


3.分页查询实例

----------------------1.9条到16条的数据-----------------------------

select top 8 * from student where tsid not in (select top 8 tsid from student )


----------------------2.每页7条数据 ,查第三页的数据----------------

select top 7 * from student where tsid not in (select top (2*7) tsid from student)


----------------------3.给查询结果加编号---------------------------------------

select 编号=ROW_NUMBER()over(order by tsid),* from student


-----------------------4.over按照哪一列进行排序 然后row_number()编号-----------

select tsmath,名次=ROW_NUMBER()over(order by tsmath desc) from TblScore


----------------------5.每页三条 ?查第五页的--------------------------------

select * from

(select 编号=ROW_NUMBER() over(order by tsname desc),* from student)as newStu

where newStu.编号 between (5-1)*3+1 and 3*5


----------------------6.每页9条数据 查询13页的----------------------------

select 编号=ROW_NUMBER ()over(order by id),*from MyOrders

where 编号 between 12*9+1 and 9*13


select * from

(select 编号=ROW_NUMBER() over(order by id),* from MyOrders) as Orders

where Orders.编号 between (13-1)*9+1 and 13*9


----------------------7.名次从小到大,分数一样的名词不一样------------

select tsmath,名次=ROW_NUMBER()over(order by tsmath desc) from TblScore


-----------------------8.rank() 数据相同的名次一样---------------------

select tsmath,65);">rank()over(order by tsmath desc) from TblScore


欢迎关注趣味CSharp,完整笔记与您分享~~~~~~~~

(编辑:李大同)

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

    推荐文章
      热点阅读