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的初學者。