all any 或 此运算符后面必须跟_any和all组合运算符用法区别
Any、All與>、<、=、組合和In的意義、用法的區(qū)別
SELECT * FROM ORDERS
WHERE EXISTS(SELECT *FORM ORDERS
WHERE NAME#='SB')
這樣會(huì)返回orders里面所有的值,而不是只有NAME#='SB'的值
改成
SELECT * FROM ORDERS O1
WHERE EXISTS(SELECT *FORM ORDERS O2
WHERE O1.NAME# = O2.NAME# and O2.NAME# = 'SB') 即可得到NAME#='SB'的記錄.
可以用 ALL 或 ANY 關(guān)鍵字修改引入子查詢的比較運(yùn)算符。SOME 是與 ANY 等效的 SQL-92 標(biāo)準(zhǔn)。
通過(guò)修改的比較運(yùn)算符引入的子查詢返回零個(gè)值或多個(gè)值的列表,并且可以包括 GROUP BY 或 HAVING 子句。這些子查詢可以用 EXISTS 重新表述。
以 > 比較運(yùn)算符為例,>ALL 表示大于每一個(gè)值。換句話說(shuō),它表示大于最大值。例如,>ALL (1, 2, 3) 表示大于 3。>ANY 表示至少大于一個(gè)值,即大于最小值。因此 >ANY (1, 2, 3) 表示大于 1。
擴(kuò)充:<all 表示小于集合或列表中所有值,也就是等價(jià)表示為小于最小值;
<any 表示小于集合或列表中任何值,也就是等價(jià)表示小于為最大值;
若要使帶有 >ALL 的子查詢中的行滿足外部查詢中指定的條件,引入子查詢的列中的值必須大于子查詢返回的值列表中的每個(gè)值。
同樣,>ANY 表示要使某一行滿足外部查詢中指定的條件,引入子查詢的列中的值必須至少大于子查詢返回的值列表中的一個(gè)(最小)值。
下面的查詢提供一個(gè)由 ANY 修改的比較運(yùn)算符引入的子查詢的示例。它查找定價(jià)高于或等于任何產(chǎn)品子類別的最高定價(jià)的產(chǎn)品。
代碼:
USE AdventureWorks;
GO
SELECT Name
FROM Production.Product
WHERE ListPrice >= ANY
(SELECT MAX (ListPrice)
FROM Production.Product
GROUP BY ProductSubcategoryID)
對(duì)于每個(gè)產(chǎn)品子類別,內(nèi)部查詢查找最高定價(jià)。外部查詢查看所有這些值,并確定定價(jià)高于或等于任何產(chǎn)品子類別的最高定價(jià)的單個(gè)產(chǎn)品。如果 ANY 更改為 ALL,查詢將只返回定價(jià)高于或等于內(nèi)部查詢返回的所有定價(jià)的那些產(chǎn)品。
如果子查詢不返回任何值,那么整個(gè)查詢將不會(huì)返回任何值。
=ANY 運(yùn)算符與 IN 等效。例如,若要查找 Adventure Works Cycles 生產(chǎn)的所有輪子產(chǎn)品的名稱,可以使用 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')
下面是任一查詢的結(jié)果集:
Name
--------------------------------------------------
LL Mountain Front Wheel
ML Mountain Front Wheel
HL Mountain F
總結(jié)
以上是生活随笔為你收集整理的all any 或 此运算符后面必须跟_any和all组合运算符用法区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: android gridview行分割线
- 下一篇: iservice封装有哪些方法_总结We