天天看點

BI-SQL丨ALL、ANY、SOME

BI-SQL丨ALL、ANY、SOME

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 (子查詢)
           

使用執行個體

案例資料:

BI-SQL丨ALL、ANY、SOME

在白茶本機的資料庫中,存在名為“CaseData”的資料庫,存在名為“Dim_Product”的次元表。

ALL例子:

篩選出“Dim_Product”中價格大于“單肩包”和“風衣”的剩餘所有産品資訊。

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

結果如下:

BI-SQL丨ALL、ANY、SOME

ANY例子:

篩選出“Dim_Product”中價格大于“單肩包”或“風衣”的剩餘所有産品資訊。

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

結果如下:

BI-SQL丨ALL、ANY、SOME

SOME例子:

篩選出“Dim_Product”中價格大于“單肩包”或“風衣”的剩餘所有産品資訊。

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

結果如下:

BI-SQL丨ALL、ANY、SOME
BI-SQL丨ALL、ANY、SOME
BI-SQL丨ALL、ANY、SOME

這裡是白茶,一個PowerBI的初學者。

BI-SQL丨ALL、ANY、SOME