日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

all any 或 此运算符后面必须跟_用 ANY、SOME 或 ALL 修改的比较运算符

發布時間:2024/1/23 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 修改的比较运算符的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。