ALL、ANY和SOME子查询可以用ALL或ANY关键字修改引入子查询的比较运算符。SOME是与ANY等效的SQL-92标准。通过修改的比较运算符引入的子查询返回零个值或多个值的列表,并且可以包括GROUPBY或HAVING子句。这些子查询可以用EXISTS重新表述。以>比较运算符为例,>ALL表示大于每一个值。换句话说,它表示大于最大值。例如,>ALL(1,2,3)表示大于3。>ANY表示至少大于一个值,即大于最小值。因此>ANY(1,2,3)表示大于1。若要使带有>ALL的子查询中的行满足外部查询中指定的条件,引入子查询的列中的值必须大于子查询返回的值列表中的每个值。同样,>ANY表示要使某一行满足外部查询中指定的条件,引入子查询的列中的值必须至少大于子查询返回的值列表中的一个值。下面的查询提供一个由ANY修改的比较运算符引入的子查询的示例。它查找定价高于或等于任何产品子类别的最高定价的产品。复制代码USEAdventureWorks;GOSELECTNameFROMProduction.ProductWHEREListPrice>=ANY(SELECTMAX(ListPrice)FROMProduction.ProductGROUPBYProductSubcategoryID)对于每个产品子类别,内部查询查找最高定价。外部查询查看所有这些值,并确定定价高于或等于任何产品子类别的最高定价的单个产品。如果ANY更改为ALL,查询将只返回定价高于或等于内部查询返回的所有定价的那些产品。如果子查询不返回任何值,那么整个查询将不会返回任何值。=ANY运算符与IN等效。例如,若要查找AdventureWorksCycles生产的所有轮子产品的名称,可以使用IN或=ANY。复制代码--Using=ANYUSEAdventureWorks;GOSELECTNameFROMProduction.ProductWHEREProductSubcategoryID=ANY(SELECTProductSubcategoryIDFROMProduction.ProductSubcategoryWHEREName='Wheels')--UsingINUSEAdventureWorks;GOSELECTNameFROMProduction.ProductWHEREProductSubcategoryIDIN(SELECTProductSubcategoryIDFROMProduction.ProductSubcategoryWHEREName='Wheels')下面是任一查询的结果集:复制代码Name--------------------------------------------------LLMountainFrontWheelMLMountainFrontWheelHLMountainFrontWheelLLRoadFrontWheelMLRoadFrontWheelHLRoadFrontWheelTouringFrontWheelLLMountainRearWheelMLMountainRearWheelHLMountainRearWheelLLRoadRearWheelMLRoadRearWheelHLRoadRearWheelTouringRearWheel(14row(s)affected)但是,<>ANY运算符则不同于NOTIN:<>ANY表示不等于a,或者不等于b,或者不等于c。NOTIN表示...