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 (子查询)
使用实例
案例数据:
在白茶本机的数据库中,存在名为“CaseData”的数据库,存在名为“Dim_Product”的维度表。
ALL例子:
筛选出“Dim_Product”中价格大于“单肩包”和“风衣”的剩余所有产品信息。
SELECT *
FROM Dim_Product
WHERE
Price > ALL(SELECT Price
FROM Dim_Product
Where ProductName='单肩包' OR ProductName='风衣');
结果如下:
ANY例子:
筛选出“Dim_Product”中价格大于“单肩包”或“风衣”的剩余所有产品信息。
SELECT *
FROM Dim_Product
WHERE
Price > ANY(SELECT Price
FROM Dim_Product
Where ProductName='单肩包' OR ProductName='风衣');
结果如下:
SOME例子:
筛选出“Dim_Product”中价格大于“单肩包”或“风衣”的剩余所有产品信息。
SELECT *
FROM Dim_Product
WHERE
Price > SOME(SELECT Price
FROM Dim_Product
Where ProductName='单肩包' OR ProductName='风衣');
结果如下:
这里是白茶,一个PowerBI的初学者。
网友评论