--1. 使用IN关键字

--例1 查询系别人数不足5人的系别中学生的学号、姓名和系别

--系别人数不足5人的系别  ==>选择条件
select Sdept
from Student
Group by Sdept
Having Count(*) < --显示这些系别的学生信息
Select sno, sname, sdept
From Student
WHERE sdept IN (
select Sdept
from Student
Group by Sdept
Having Count(*) <
) --2. 使用EXISTS关键字 --例2 如果“MA"系别有人的成绩大于等于90
--就把全系别的学号,姓名、班级、课程号、成绩显示出来 --查询"MA"系别成绩大于90的学生信息
select *
from Student
INNER JOIN SC ON Student.Sno = SC.Sno
WHERE Student.Sdept = 'MA' and SC.Grade >= --结果有,则显示全班信息
select Sdept, SC.Sno, Sname, Cno, Grade
from Student
INNER JOIN SC ON Student.Sno = SC.Sno
WHERE Student.Sdept = 'MA' and
EXISTS ( --exists 里是一个子查询
select *
from Student
INNER JOIN SC ON Student.Sno = SC.Sno
WHERE Student.Sdept = 'MA' and SC.Grade >=
)
--(4)所有课程都被选修的学生学号
select Sno
From Student
Where not EXISTS
(
Select *
From Course
where not Exists
(
Select *
From SC
where Sno = Student.Sno
and Cno = Course.Cno
)
)
--3. 比较运算

--例3 显示航天班成绩在平均成绩以上的人的
--班级、学号、姓名、课程号和成绩 --所有参加考试的人的所有课程的总平均 select AVG(Grade)
from SC --平均成绩以上的人的信息
select S.Sdept, S.Sno, S.Sname, SC.Cno, SC.Grade
from Student as S
INNER JOIN SC on S.Sno = SC.Sno
WHERE SC.Grade > ANY( -- any, 表示集合里头的任何一个都可以
select AVG(Grade)
from SC
) AND S.Sdept = 'IS' --例4 查询学生的班级数 --首先, 查询学生来自哪些不同的班级
--该查询的结果,像是统计的数据源
SELECT distinct Sdept
From Student --然后统计这个的个数
--把这个结果看作类似一个表一样
--写在FROM子句中
Select count(*) as 班级数
FROM (
--查询的是哪些班级
SELECT distinct Sdept
From Student
) AS S

SQL语句(十四)子查询的更多相关文章

  1. 分享一篇:sql语句中使用子查询,可能会引起查询的性能问题,查询时间会变长

    前段时间,做自动化适配的时候,查找需要的数据的时候,使用到了dblink,跨数据库实例进行访问,整段sql拼接再加上dblink,在plsql查询的时候,性能还不是很长时间,最多2分钟可以查到,前期调 ...

  2. 在 SQL Server 数据库的 WHERE 语句中使用子查询

    这是关于子查询语句的一系列文章中的第三篇.在这篇文章中我们将讨论WHERE语句中的子查询语句.其他的文章讨论了其他语句中的子查询语句. 本次课程中的所有例子都是基于Microsoft SQL Serv ...

  3. MySQL之多表查询一 介绍 二 多表连接查询 三 符合条件连接查询 四 子查询 五 综合练习

    MySQL之多表查询 阅读目录 一 介绍 二 多表连接查询 三 符合条件连接查询 四 子查询 五 综合练习 一 介绍 本节主题 多表连接查询 复合条件连接查询 子查询 首先说一下,我们写项目一般都会建 ...

  4. SQL复习三(子查询)

    子查询 子查询就是嵌套查询,即select中包含这select,如果一条语句中存在着两个,或者两个以上的select,那么就是子查询语句了. 子查询出现的位置 where后,作为条件的一部分: fro ...

  5. 由一条sql语句想到的子查询优化

    摘要:相信大家都使用过子查询,因为使用子查询可以一次性的完成很多逻辑上需要多个步骤才能完成的SQL操作,比较灵活,我也喜欢用,可最近因为一条包含子查询的select count(*)语句导致点开管理系 ...

  6. 在论坛中出现的比较难的sql问题:7(子查询 判断某个字段的值是否连续)

    原文:在论坛中出现的比较难的sql问题:7(子查询 判断某个字段的值是否连续) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所以 ...

  7. 通过带参数的Sql语句来实现模糊查询(多条件查询)

    #region 通过带参数的Sql语句来实现模糊查询(多条件查询) StringBuilder sb = new StringBuilder("select * from books&quo ...

  8. hibernate中使用sql语句进行表链接查询,对结果集的遍历方法

    今天做了一个在hibernate中使用sql语句进行表链接查询的功能,得到的属性是来自两个表中的字段.下面对结果集遍历的方法进行记录. sql语句不写了.部分代码如下: List<Course_ ...

  9. 在论坛中出现的比较难的sql问题:40(子查询 销售和历史库存)

    原文:在论坛中出现的比较难的sql问题:40(子查询 销售和历史库存) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所以,觉得有 ...

  10. 六、SQL语句进行多条件查询,并解决参数为空的情况

    一.SQL语句进行多条件查询,并解决参数为空的情况 QueryEntity query; var whereSql = new StringBuilder("Where 1=1") ...

随机推荐

  1. 基于.NET Standard的分布式自增ID算法--美团点评LeafSegment

    概述 前一篇文章讲述了最流行的分布式ID生成算法snowflake,本篇文章根据美团点评分布式ID生成系统文章,介绍另一种相对更容易理解和编写的分布式ID生成方式. 实现原理 Leaf这个名字是来自德 ...

  2. Jq_$.getJSON( )

    jQuery中的$.getJSON( )方法函数主要用来从服务器加载json编码的数据,它使用的是GET HTTP请求.使用方法如下: $.getJSON( url [, data ] [, succ ...

  3. Salesforce随笔: 解决被指定给Chatter相关用户的RecordType无法被删除的问题

    被指定给以下三组用户的RecordType无法在对应的Profile里取消占用: Chatter External User Chatter Free User Chatter Moderator U ...

  4. Dive查看docker镜像层信息

    1.主要采用docker运行dive的方式,不然宿主机还要安装go那些挺麻烦的.具体用法可查看官方: https://github.com/wagoodman/dive 2.拉取dive镜像 dock ...

  5. 32bit 天堂2脚本修改资料大全【客户端+服务端】

    该资料夹中所有教程资料全部适合天堂2初章32位服务端的脚本修改,已经1.2章相关客户端的修改. https://pan.baidu.com/s/1RuGMFNgERd2JMYQpdceQwg 提取码: ...

  6. 01_python2.x和python3.x中range()的区别

    Py2.x 1) .range 和xrange都是经常使用的,特别是range()返回一个列表 2) .xrange()一般用来创建迭代对象 Py3.x xrange()不存在了,只有range()而 ...

  7. 主流蓝牙芯片盘点,Nordic/TI/博通哪家强?

    无线通信技术自19世纪中期诞生以来,从使用狼烟.火炬.闪光镜.信号弹等在视距内传输信息,到1838年塞缪尔・莫尔斯发明电报网,再到电报网被电话取代,再到几十年后的1895年马可尼首次从英国怀特岛到30 ...

  8. Notes of Daily Scrum Meeting(12.21)

    今天的燃尽图把周六的进度加了进来,由于我的失误没有及时更新TFS,所以出现了一些错误,向大家道歉. 下面是今天的任务总结: 团队成员 今日团队工作 陈少杰 继续进行网络连接的调试 王迪 测试搜索的功能 ...

  9. c# WndProc事件 消息类型

    转载:https://www.cnblogs.com/idben/p/3783997.html WM_NULL = 0x0000; WM_CREATE = 0x0001;应用程序创建一个窗口 WM_D ...

  10. 冲刺Two之站立会议3

    今天继续昨天的工作,对主界面进行设计优化,并成功将各个按钮和对应的功能模块连接了起来.并对服务器部分进行了部分改进,包括登录界面的美观性和服务器数据库部分的处理.