Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 的用法 » 查询和修改数据 » 使用子查询

 

WHERE 子句中的子查询

WHERE 子句中的子查询是行选择过程的一部分。当行选择条件取决于另一个表的结果时,可以在 WHERE 子句中使用子查询。

示例

查找其库存量小于平均订购量的两倍的产品。

SELECT Name, Description
FROM Products WHERE Quantity <  2 * (
   SELECT AVG( Quantity )
   FROM SalesOrderItems );

这是一个两步查询:第一步是查找单位订单所请求产品的平均数,然后查找库存数小于该平均数两倍的产品。

由两个步骤组成的查询

SalesOrderItems 表的 Quantity 列存储单位产品类型、客户和订单请求的产品数量。该子查询为

SELECT AVG( Quantity )
FROM SalesOrderItems;

它返回 SalesOrderItems 表中各产品的平均数量,即 25.851413。

下一个查询返回其库存数量小于以前提取的值的两倍的产品的名称和说明。

SELECT Name, Description
FROM Products
WHERE Quantity < 2*25.851413;

使用一个子查询将两个步骤合并成一个操作。

在 WHERE 子句中使用子查询的目的

WHERE 子句中的子查询是搜索条件的一部分。查询数据一章介绍了可以在 WHERE 子句中使用的简单搜索条件。