all any 或 此运算符后面必须跟_用 ANY、SOME 或 ALL 修改的比较运算符
可以用 ALL 或 ANY 關鍵字修改引入子查詢的比較運算符。SOME 是與 ANY 等效的 SQL-92 標準。
通過修改的比較運算符引入的子查詢返回零個值或多個值的列表,并且可以包括 GROUP BY 或 HAVING 子句。這些子查詢可以用 EXISTS 重新表述。
以 > 比較運算符為例,>ALL 表示大于每一個值。換句話說,它表示大于最大值。例如,>ALL (1, 2, 3) 表示大于 3。>ANY 表示至少大于一個值,即大于最小值。因此 >ANY (1, 2, 3) 表示大于 1。
若要使帶有 >ALL 的子查詢中的行滿足外部查詢中指定的條件,引入子查詢的列中的值必須大于子查詢返回的值列表中的每個值。
同樣,>ANY 表示要使某一行滿足外部查詢中指定的條件,引入子查詢的列中的值必須至少大于子查詢返回的值列表中的一個值。
下面的查詢提供一個由 ANY 修改的比較運算符引入的子查詢的示例。它查找定價高于或等于任何產品子類別的最高定價的產品。
USE AdventureWorks;
GO
SELECT Name
FROM Production.Product
WHERE ListPrice >= ANY
(SELECT MAX (ListPrice)
FROM Production.Product
GROUP BY ProductSubcategoryID)
對于每個產品子類別,內部查詢查找最高定價。外部查詢查看所有這些值,并確定定價高于或等于任何產品子類別的最高定價的單個產品。如果 ANY 更改為 ALL,查詢將只返回定價高于或等于內部查詢返回的所有定價的那些產品。
如果子查詢不返回任何值,那么整個查詢將不會返回任何值。
=ANY 運算符與 IN 等效。例如,若要查找 Adventure Works Cycles 生產的所有輪子產品的名稱,可以使用 IN 或 =ANY。
--Using =ANY
USE AdventureWorks;
GO
SELECT Name
FROM Production.Product
WHERE ProductSubcategoryID =ANY
(SELECT ProductSubcategoryID
FROM Production.ProductSubcategory
WHERE Name = 'Wheels')
--Using IN
USE AdventureWorks;
GO
SELECT Name
FROM Production.Product
WHERE ProductSubcategoryID IN
(SELECT ProductSubcategoryID
FROM Production.ProductSubcategory
WHERE Name = 'Wheels')
下面是任一查詢的結果集:
Name
--------------------------------------------------
LL Mountain Front Wheel
ML Mountain Front Wheel
HL Mountain Front Wheel
LL Road Front Wheel
ML Road Front Wheel
HL Road Front Wheel
Touring Front Wheel
LL Mountain Rear Wheel
ML Mountain Rear Wheel
HL Mountain Rear Wheel
LL Road Rear Wheel
ML Road Rear Wheel
HL Road Rear Wheel
Touring Rear Wheel
(14 row(s) affected)
但是,< >ANY 運算符則不同于 NOT IN:< >ANY 表示不等于 a,或者不等于 b,或者不等于 c。NOT IN 表示不等于 a、不等于 b 并且不等于 c。<>ALL 與 NOT IN 表示的意思相同。
例如,以下查詢查找位于任何銷售人員都不負責的地區的客戶。
Use AdventureWorks;
GO
SELECT CustomerID
FROM Sales.Customer
WHERE TerritoryID <> ANY
(SELECT TerritoryID
FROM Sales.SalesPerson)
結果包含除銷售地區為 NULL 的客戶以外的所有客戶,因為分配給客戶的每個地區都由一個銷售人員負責。內部查詢查找銷售人員負責的所有銷售地區,然后對于每個地區,外部查詢查找不在任一地區的客戶。
由于同一原因,當在此查詢中使用 NOT IN 時,結果將不包含任何客戶。
還可以使用 < >ALL 運算符獲得相同的結果,該運算符與 NOT IN 等效。
總結
以上是生活随笔為你收集整理的all any 或 此运算符后面必须跟_用 ANY、SOME 或 ALL 修改的比较运算符的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: find linux 指定后缀_linu
- 下一篇: cdn厂商 同兴万点_同兴万点:TXNe