注册 登录
编程论坛 SQL Server论坛

[讨论]到底这句话是什么意思?

duanshao 发布于 2006-10-23 15:48, 579 次点击
数据库系统概述(萨师煊 版本),高等教育出版社,P110页。
例题 [39] 查询其他系比信息系一学生年龄小的学生姓名和年龄。
SELECT Sname, Sage
FROM Student
WHERE Sage<ANY(SELECT Sage
FROM Student
WHERE Sdept='IS')
AND Sdept<>'IS'

如果现在改动一下:
查询其他系比信息系任意一学生年龄小的学生姓名和年龄。

结果还是上面的吗?

我觉得上面的 ANY 应该改成 ALL 。
但是我的老师说是 ANY 不是ALL。我怎么都想不通,到底是老师对,还是怎么的?
4 回复
#2
小水滴2006-10-23 16:26
<all 表示小于每一个值,也就是小于最小值

<any 表示至少小于一个值,也就是小于最大值

因此,查询其他系比信息系某一学生年龄小应该用any, 如果是查询其他系比信息系所有学生年龄小才用all.


这样理解对不对?

#3
duanshao2006-10-23 17:15

对,你这样理解是没错的。。
现在好象就是在讨论“语言文字”,到底 任意一个是和某一个的意思相同还是和所有的的意思相同呢!

#4
duanshao2006-10-23 17:18

数据库系统概述(萨师煊 版本),高等教育出版社,P110页。
例题 [39] 查询其他系比信息系某一学生年龄小的学生姓名和年龄。
SELECT Sname, Sage
FROM Student
WHERE Sage<ANY(SELECT Sage
FROM Student
WHERE Sdept='IS')
AND Sdept<>'IS'

如果现在改动一下:
查询其他系比信息系任意一学生年龄小的学生姓名和年龄。

结果还是上面的吗?我觉得把ANY改成ALL就行了。但是我的老师说还是
ANY 不是ALL。我怎么都想不通,到底是老师对,还是怎么的

#5
ascor2006-10-23 19:13

说那么多 怀疑那么多 你自己实际执行检查一下 就知道其中的差别拉

1