首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >sql server嵌套查询实验_exists嵌套查询

sql server嵌套查询实验_exists嵌套查询

作者头像
全栈程序员站长
发布2022-09-22 16:50:08
发布2022-09-22 16:50:08
2.6K0
举报

大家好,又见面了,我是你们的朋友全栈君。

sql server嵌套查询

一 带有IN谓词的子查询
1. 查询与“刘晨”在同一个系学习的学生
代码语言:javascript
复制
SELECT sno ,
		sname
FROM student
WHERE sdept IN 
    (SELECT sdept
    FROM student
    WHERE sname='刘晨')
二. 带有比较运算符的子查询
1. 找出每个学生超过他自己选修课程平均成绩的课程号
代码语言:javascript
复制
SELECT sno,
		cno
FROM sc x
WHERE grade >=
    (SELECT avg(grade)
    FROM sc y
    WHERE y.sno=x.sno)

内层查询是求一个一个学生的平均成绩的,至于是哪个学生的成绩,要看参数x.sno的值

三. 带有ANY(SOME)或ALL谓词的子查询
1. 查询非计算机科学系中比计算机科学系任意一个学生年龄小的学生姓名和年龄
代码语言:javascript
复制
SELECT sname,
		sage
FROM student
WHERE sage <any 
    (SELECT sage
    FROM student
    WHERE sdept='cs')
		AND sdept <> 'cs'

比子查询中最大值小的

2. 查询非计算机科学系中比计算机科学系所有学生年龄小的学生姓名和年龄
代码语言:javascript
复制
SELECT sname,
		sage
FROM student
WHERE sage <all 
    (SELECT sage
    FROM student
    WHERE sdept='cs')
		AND sdept<>'cs'

比子查询中最大值大的

三. 带有EXISTS谓词的子查询
1. 查询所有选修了1号课程的学生的姓名
代码语言:javascript
复制
--方法一
SELECT sname
FROM student
WHERE exists
    (SELECT *
    FROM sc
    WHERE student.sno=sc.sno
    		AND cno='1')

--方法二
SELECT sname
FROM student
WHERE sno in
    (SELECT sno
    FROM sc
    WHERE cno='1')
2. 查询没有选修1号课程的学生的姓名
代码语言:javascript
复制
SELECT sname
FROM student
WHERE NOT exists
    (SELECT *
    FROM sc
    WHERE student.sno=sc.sno
    		AND cno='1')

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/169426.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • sql server嵌套查询
    • 一 带有IN谓词的子查询
    • 二. 带有比较运算符的子查询
    • 三. 带有ANY(SOME)或ALL谓词的子查询
    • 三. 带有EXISTS谓词的子查询
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档