我真的很难理解这些3.看起来ANY
和SOME
做同样的事情,但我看不出与ALL
的区别
答案 0 :(得分:10)
我们有一个小组列表。每个小组都有类型的成员。每个人都有一个年龄。
所有members.age> 30
表示您会找到一个成员年龄均超过30岁的小组。您将找不到至少有一名成员年龄在30岁以下的小组。
ANY members.age> 30
表示您将找到一个至少有一名成员年龄超过30岁的小组。您将找不到所有成员年龄均为30岁或以下的小组。
Group1 > 30
Amin 45 YES
Chris 29 NO
---
All NO (because Chris is too young)
Any YES (because Amin is old enough)
Group2 > 30
Amin 45 YES
Foo 35 YES
---
All YES (because all members are old enough)
Any YES (because at least one member is old enough)
Group3 > 30
Chris 29 NO
Bar 21 NO
---
All NO (because at least one member is too young)
Any NO (because all members are too young)
使用ALL谓词可以找到Group2,因为所有成员(Amin,Foo)都匹配谓词。使用ANY谓词,您将找到两个组,因为在两个组中至少有一个成员与谓词匹配。
答案 1 :(得分:5)
ALL
和ANY
是基本逻辑运算符。
ALL predicate
的计算结果为true时, predicate
的计算结果为true
每个项目。
ANY predicate
评估至少为1项时, predicate
的计算结果为真。
请注意,您始终可以使用ANY表示所有谓词,反之亦然,例如ALL condition
等同于NOT (ANY NOT(condition))
。
您可以在Predicate Programming Guide,章节汇总操作
中找到更多信息