alt

ALL、ANY、SOME

ALL、ANY和SOME,这三个关键字,在SQL中使用频率较高,通常可以用来进行数据比较筛选。

注:SQL中ALL的用法和DAX中ALL的用法是完全不同的,小伙伴不要混淆了。

那么三者之间的区别是什么呢?

ALL:类似于AND,只有当满足所有条件时,才会返回TRUE。

ANY:类似于OR,语法上和IN有区别,IN通常不需要搭配比较符,ANY需要和比较符搭配使用,但是从结果上看用途基本一致,只要满足一个条件,就返回TRUE。

SOME:与ANY有细微差距,但是作用基本上与ANY是相同的,常规用法看作与ANY一致即可。

基础语法

ALL语法:

WHERE 列名称 比较符 ALL (子查询)

ANY语法:

WHERE 列名称 比较符 ANY (子查询)

SOME语法:

WHERE 列名称 比较符 SOME (子查询)

使用实例

案例数据: alt

在白茶本机的数据库中,存在名为“CaseData”的数据库,存在名为“Dim_Product”的维度表。

ALL例子:

筛选出“Dim_Product”中价格大于“单肩包”和“风衣”的剩余所有产品信息。

SELECT *
FROM Dim_Product
WHERE
Price > ALL(SELECT Price
FROM Dim_Product
Where ProductName='单肩包' OR ProductName='风衣');

结果如下: alt

ANY例子:

筛选出“Dim_Product”中价格大于“单肩包”或“风衣”的剩余所有产品信息。

SELECT *
FROM Dim_Product
WHERE
Price > ANY(SELECT Price
FROM Dim_Product
Where ProductName='单肩包' OR ProductName='风衣');

结果如下:

alt

SOME例子:

筛选出“Dim_Product”中价格大于“单肩包”或“风衣”的剩余所有产品信息。

SELECT *
FROM Dim_Product
WHERE
Price > SOME(SELECT Price
FROM Dim_Product
Where ProductName='单肩包' OR ProductName='风衣');

结果如下:

alt alt alt

这里是白茶,一个PowerBI的初学者。 alt