【SQL Server 第4篇】子查询与嵌套查询

简单的嵌套查询

举例:查询考试大于等于90分的学生信息

           use 数据库
           select * from 学生表
           where 学号= (select 学号 from 成绩表 where 成绩>=90)

带in的嵌套查询

举例:查询参加考试的学生信息

           use 数据库
           select * from 学生表
           where 学号 in (select 学号 from 成绩表 )

带not in的嵌套查询

举例:查询没有考试的课程信息

           use 数据库
           select * from 课程表
           where 课程编号 not  in 
          (select 课程编号 from 成绩表 where 课程编号 is not null )

带some的嵌套查询

举例:查询年龄小于平均年龄的所有学生信息。

          use 数据库
           select * from 学生表
           where 年龄<some
          (select avg(年龄) from 学生表)

带any的嵌套查询

举例:查询年龄大于平均年龄的所有学生信息。

           use 数据库
           select * from 学生表
           where 年龄>any
          (select avg(年龄) from 学生表)

举例:查询年龄不等于平均年龄的所有学生信息。

           use 数据库
           select * from 学生表
           where 年龄 <> any
          (select avg(年龄) from 学生表)

带all的嵌套查询

举例:查询成绩没有大于90分的课程信息

           use 数据库
           select * from 课程表
           where 课程编号<>all
          (select 课程编号 from 成绩表 where 成绩>90)

带exists的嵌套查询

举例:查询参加考试的学生信息

           use 数据库
           select * from 学生表
           where exists
          (select 学号 from 成绩表 where 学生表.学号=成绩表.学号 )

举例:查询没有参加考试的学生信息

           use 数据库
           select * from 学生表
           where not exists
          (select 学号 from 成绩表 where 学生表.学号=成绩表.学号 )
    原文作者:晟文刀
    原文地址: https://www.jianshu.com/p/6b4cba429357
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞