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

sql server嵌套查询实验_exists嵌套查询嵌套查询一带有IN谓词的子查询1.查询与“刘晨”在同一个系学习的学生selectsno,snamefromstudentwheresdeptin( selectsdept fromstudent wheresname=’刘晨’)二.带有比较运算符的子查询1.找出每个学生超过他自己选修课程平均成绩的课程号selectsno,cnofrom…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

sql server嵌套查询

一 带有IN谓词的子查询

1. 查询与“刘晨”在同一个系学习的学生
SELECT sno ,
		sname
FROM student
WHERE sdept IN 
    (SELECT sdept
    FROM student
    WHERE sname='刘晨')

二. 带有比较运算符的子查询

1. 找出每个学生超过他自己选修课程平均成绩的课程号
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. 查询非计算机科学系中比计算机科学系任意一个学生年龄小的学生姓名和年龄
SELECT sname,
		sage
FROM student
WHERE sage <any 
    (SELECT sage
    FROM student
    WHERE sdept='cs')
		AND sdept <> 'cs'

比子查询中最大值小的

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

比子查询中最大值大的

三. 带有EXISTS谓词的子查询

1. 查询所有选修了1号课程的学生的姓名
--方法一
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号课程的学生的姓名
SELECT sname
FROM student
WHERE NOT exists
    (SELECT *
    FROM sc
    WHERE student.sno=sc.sno
    		AND cno='1')
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(1)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号