问题 单项选择题

产品(PRODUCT)表的结构如下:

PRODUCT
PRODUCT_ID NUMBER NOT NULL, Primary Key
PRODUCT_NAME VARCHAR2(25)  
SUPPLIER_ID NUMBER Foreign key to SUPPLIER_ID of the SUPPLIER table
LIST_PRICE NUMBER(7, 2)  
COST NUMBER(7, 2)  
QTY_IN_STOCK NUMBER  
QTY_ON_ORDER NUMBER  
REORDER_LEVEL NUMBER  
REORDER_QTY NUMBER  
如果使用如下的SQL语句,哪个子句将会产生错误
SELECTsupplier_id,AVG(cost)
FROM product
WHEREAVG(list_price)>60.00
GROUP BY supplier_id
ORDER BY AVG(cost)DESC;

A.FROM
B.WHERE
C.GROUP BY
D.ORDER BY

答案

参考答案:B

解析: 这一题是测试对HAVING子句的理解。根据有关HAVING子句的介绍,可知WHERE子句不能用于限制分组函数,在Oracle中应该使用HAVING子句来限制分组函数,所以可以确定WHERE AVG(list_price)>60.00子句是错误的,即选项B是正确的。
在本题的SQL语句中,子句FROM product、GROUP BY supplier_id和ORDER BY AVG(cost)DESC都是正确的,所以选项A、C和D都不是本题的答案。

填空题
单项选择题