Collection Contents 上一页 下一页 PDF

ASA SQL 用户指南

使用子查询

子查询比较测试


子查询比较测试(=、<>、<.<=、>、>=)是简单比较测试的修改后的版本。这两者的唯一区别在于:在子查询比较测试中,在运算符之后的表达式是子查询。此测试用于将来自主查询的某行中的值与子查询生成的单个 值进行比较。

示例 

下面的查询包含一个子查询比较测试的示例:

SELECT name, description, quantity
FROM product
WHERE quantity <  2 * (
   SELECT avg(quantity)
   FROM sales_order_items)
name description quantity
Tee Shirt Tank Top 28
Baseball Cap Wool cap 12
Visor Cloth Visor 36
Visor Plastic Visor 28
... ... ...

以下子查询从 sales_order_items 表检索单个值,即每个客户订单的每一类型的产品的平均数量。

SELECT avg(quantity)
FROM sales_order_items

然后,主查询将每一库存产品的数量与该值进行比较。

比较测试中的子查询返回一个值 

比较测试中的子查询必须恰好返回一个值。请看以下查询,其子查询从 sales_order_items 表中提取两列:

SELECT name, description, quantity
FROM product
WHERE quantity <  2 * (
   SELECT avg(quantity), max (quantity)
   FROM sales_order_items)

它返回错误 [子查询只允许一个选择列表项]。


Collection Contents 上一页 下一页 PDF