OCP 1Z0 051 147

147. View the Exhibit and examine the structure of the PROMOTIONS table. 
Evaluate the following SQL statement:  
SQL>SELECT promo_name,CASE    
WHEN promo_cost >=(SELECT AVG(promo_cost)       
FROM promotions       
WHERE promo_category='TV')         
then 'HIGH'         
else 'LOW'         
END COST_REMARK 
FROM promotions; 
Which statement is true regarding the outcome of the above query? 

A. It shows COST_REMARK for all the promos in the table. 
B. It produces an error because the subquery gives an error. 
C. It shows COST_REMARK for all the promos in the promo category 'TV'. 
D. It produces an error because subqueries cannot be used with the CASE expression. 

该子查询是在select后 from 前,这种叫标量子查询。

有匹配数据时显示一个值,没有数据时显示null

不影响主查询的行数

SQL> SELECT promo_name,
  2         CASE
  3           WHEN promo_cost >= (SELECT AVG(promo_cost)
  4                                 FROM sh.promotions
  5                                WHERE promo_category = 'TV') THEN
  6            'HIGH'
  7           ELSE
  8            'LOW'
  9         END cost_remark
 10    FROM sh.promotions
 11   WHERE rownum <= 5;
PROMO_NAME                     COST_REMARK
------------------------------ -----------
NO PROMOTION #                 LOW
newspaper promotion #16-108    LOW
post promotion #20-232         LOW
newspaper promotion #16-349    LOW
internet promotion #14-471     LOW
5 rows selected

SQL> SELECT COUNT(*)
  2    FROM (SELECT promo_name,
  3                 CASE
  4                   WHEN promo_cost >=
  5                        (SELECT AVG(promo_cost)
  6                           FROM sh.promotions
  7                          WHERE promo_category = 'TV') THEN
  8                    'HIGH'
  9                   ELSE
 10                    'LOW'
 11                 END cost_remark
 12            FROM sh.promotions);
  COUNT(*)
----------
       503
1 row selected

SQL> SELECT COUNT(*) FROM sh.promotions;
  COUNT(*)
----------
       503
1 row selected


Answer: A 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值