SQL高级查询:嵌套和分页

1.嵌套子查询

--查询最近一次oop考试没有参加考试的学生select StudentName from Student
where StudentNo not in(
select StudentNo from Result
where SubjectId=(
select SubjectId from Subject where SubjectName=‘oop‘
)
and ExamDate=(
select MAX(ExamDate) from Result where SubjectId=
(select SubjectId from Subject where SubjectName=‘oop‘
     )
  )
)

2.相关子查询

SElECT name,id,price
  FROM commodity As c
  WHERE  price>
  (
    SELECT AVG(price)
    FROM commodity AS a
    WHERE c.类编号=a.类编号
  )

3.分页查询

第一种:

--跳过五行取两行
select top 2 * from Student
where StudentNo not in
(
  select top 5 StudentNo from Student
  order by StudentNo
)
order by StudentNo

第二种:

--取第四行到第六行
select * from
(select *,ROW_NUMBER() over(order by StudentNo) as myid
from Student) as temp
where myid between 4 and 6
时间: 2024-08-26 03:55:48

SQL高级查询:嵌套和分页的相关文章

SQL高级查询技巧

1.UNION,EXCEPT,INTERSECT运算符 A,UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表. 当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行.两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2. B, EXCEPT 运算符 EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表

SQL高级查询基础

1.UNION,EXCEPT,INTERSECT运算符 A,UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表. 当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行.两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2. B, EXCEPT 运算符 EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表

SQL————高级查询

高级查询 --连接查询 select * from 表1,表2 ————形成笛卡尔积 select * from 表1,表2 where 表1.主键=表2.外键  ————主外键位置可以互换 --join on 内连接 格式: select * from 表1 join 外键 on 表1.主键 = 表2.外键 --查哪位学生的哪一门课考了多少分 select student.sname,course.cname,score.degree from student join score on sc

sql子查询 嵌套SELECT语句

嵌套SELECT语句也叫子查询,一个 SELECT 语句的查询结果能够作为另一个语句的输入值.子查询不但能够出现在Where子句中,也能够出现在from子句中,作为一个临时表使用,也能够出现在select list中,作为一个字段值来返回. 1.单行子查询 :单行子查询是指子查询的返回结果只有一行数据.当主查询语句的条件语句中引用子查询结果时可用单行比较符号(=, >, <, >=, <=, <>)来进行比较. 例:select ename,deptno,salfrom

sql子查询 嵌套SELECT实用语句

嵌套SELECT语句也叫子查询,一个 SELECT 语句的查询结果能够作为另一个语句的输入值.子查询不但能够出现在Where子句中,也能够出现在from子句中,作为一个临时表使用,也能够出现在select list中,作为一个字段值来返回. 1.单行子查询 :单行子查询是指子查询的返回结果只有一行数据.当主查询语句的条件语句中引用子查询结果时可用单行比较符号(=, >, <, >=, <=, <>)来进行比较. 例:select ename,deptno,sal fro

SQL高级查询

高级查询: 一.多表链接 1,普通查询 select * from 表名,表名 where 表名.列名 = 表名.列名 2,join链接 select * from 表名 join 表名 on 表名.列名 = 表名.列名 二.多表联合 select * from 表名 where 列名='内容' union select * from 表名 where 列名='内容' 三.子查询(无关子查询) select * from 表名 where 列名 = (select 列名 from 表名 wher

SQL(高级查询)

1.子查询在WHERE子句中 在SELECT查询中,在WHERE查询条件中的限制条件不是一个确定的值,而是来自于另外一个查询的结果 为了给查询提供数据而首先执行的查询语句叫做子查询 子查询嵌入在其它SQL语句中的SELECT语句,大部分出现在WHERE子句中 子查询嵌入的语句称作主查询或父查询 主查询可以是SELECT语句,也可以是其它类型的语句比如DML或DDL语句 根据返回结果的不同,子查询可分为单行子查询.多行子查询及多列子查询2.子查询在WHERE子句中(续1) 如果子查询返回多行,主查

SQL Server SQL高级查询语句小结(转)

--select select * from student; --all 查询所有 select all sex from student; --distinct 过滤重复 select distinct sex from student; --count 统计 select count(*) from student; select count(sex) from student; select count(distinct sex) from student; --top 取前N条记录 s

140908●SQL高级查询

等值连接查询 用where子句指定连接条件 例:查询“张旭“教师任课的学生成绩 select score.* from score,course,teacher where score.cno=course.cno and course.tno=teacher.tno and tname='张旭' 在from子句中用join指定连接条件 例:查询“张旭“教师任课的学生成绩. select score.* from score join course on score.cno=course.cno