SQL语言的=ALL怎么用,WHERE子句中的。 是指集合包含的关系么?如果是谁...

发布网友 发布时间:2022-04-27 03:00

我来回答

3个回答

热心网友 时间:2022-05-03 18:54

ALL不和=直接使用的, ANY才和=使用的,表示只要满足集合里面的一个条件就可以了

ALL 一般是用於> ,>=, <,<=,常用来表示大于(小于)某个集合的所有元素。

譬如
SELECT sno
FROM tab
WHERE age >=(55, 66, 77)是说年龄必须大于集合{55,66,77}的所有元素55 66 77

Clear now?

两个集合比较,可以用IN
SELECT *
FROM student
WHERE sno IN (Select sno from sc where cno = 'c001')
这个就是集合包含关系的一个最经典的例子。
子查询里面是选修了001课程的学生
sno in是凡是包含在 --〉选修了001课程的学生集合里面

没有达不到的,只有你想不到的
学生所选的课程集合要正好等于 课程集合
SELECT *
FROM SC
GROUP BY sno
HAVING COUNT(c_id) = (select count(*) from C)。 这样就达到目标了

SQL很灵活的,实际开发当中很少有人用ALL ANY的

热心网友 时间:2022-05-03 20:12

用in呗
where id in (id1,id2,id3...) -- 括号里面也可以是子查询

热心网友 时间:2022-05-03 21:46

--------------------------------------------------------------------------------
--一个集合A包含于另外一个集合B(sqlserver )
declare @count int
select @count=count(*) from A where not exists
(select * from B where A.KeyID=B.KeyID)

if( @count=0)
print 'A被B包含'
else
print 'A不全包含于B'
--------------------------------------------------------------------------------
All的用法如下:

select * from dbo.收支表
where 金额>ALL (SELECT 金额 FROM dbo.台帐表)
表示在【收支表】中查找所有金额要大于【台帐表】中的所有的金额的收支记录
--------------------------------------------------------------------------------
另外还有ANY
select * from dbo.收支表
where 金额>ANY (SELECT 金额 FROM dbo.台帐表)
表示在【收支表】中查找金额只要大于【台帐表】中的任意一个金额的收支记录
--------------------------------------------------------------------------------
=ANY 运算符与 IN 等效

< >ANY 运算符则不同于 NOT IN:< >ANY 表示不等于 a,或者不等于 b,或者不等于 c。NOT IN 表示不等于 a、不等于 b 并且不等于 c。

<>ALL 与 NOT IN 表示的意思相同

=ALL 一般没有什么意义.

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com