all any 或 此运算符后面必须跟_any和all组合运算符用法区别

Any、All与&gt、&lt、=、组合和In的意义、用法的区别

SELECT * FROM ORDERS

WHERE EXISTS(SELECT *FORM ORDERS

WHERE NAME#='SB')

这样会返回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 关键字修改引入子查询的比较运算符。SOME 是与 ANY 等效的 SQL-92 标准。

通过修改的比较运算符引入的子查询返回零个值或多个值的列表,并且可以包括 GROUP BY 或 HAVING 子句。这些子查询可以用 EXISTS 重新表述。

以 &gt 比较运算符为例,&gtALL 表示大于每一个值。换句话说,它表示大于最大值。例如,&gtALL (1, 2, 3) 表示大于 3。&gtANY 表示至少大于一个值,即大于最小值。因此 &gtANY (1, 2, 3) 表示大于 1。

扩充:&ltall 表示小于集合或列表中所有值,也就是等价表示为小于最小值;

&ltany 表示小于集合或列表中任何值,也就是等价表示小于为最大值;

若要使带有 &gtALL 的子查询中的行满足外部查询中指定的条件,引入子查询的列中的值必须大于子查询返回的值列表中的每个值。

同样,&gtANY 表示要使某一行满足外部查询中指定的条件,引入子查询的列中的值必须至少大于子查询返回的值列表中的一个(最小)值。

下面的查询提供一个由 ANY 修改的比较运算符引入的子查询的示例。它查找定价高于或等于任何产品子类别的最高定价的产品。

代码:

USE AdventureWorks;

GO

SELECT Name

FROM Production.Product

WHERE ListPrice &gt= 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 F

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值