OCP-1Z0-051 第101题 DECODE,COUNT,CASE WHEN,SUM的使用
2014-05-10 08:56
477 查看
一、原题
Examine the data in the PROMO_BEGIN_DATE column of the PROMOTIONS table:
PROMO_BEGIN _DATE
04-jan-00
10-jan-00
15-dec-99
18-oct-98
22-aug-99
You want to display the number of promotions started in 1999 and 2000.
Which query gives the correct output?
A.SELECT SUM(DECODE(SUBSTR(promo_begin_date, 8), '00', 1, 0)) "2000",
SUM(DECODE(SUBSTR(promo_begin_date, 8), '99', 1, 0)) "1999"
FROM promotions;
B.SELECT SUM(CASE TO_CHAR(promo_begin_date, 'yyyy')
WHEN '99' THEN
1
ELSE
0
END) "1999",
SUM(CASE TO_CHAR(promo_begin_date, 'yyyy')
WHEN '00' THEN
1
ELSE
0
END) "2000"
FROM promotions;
C.SELECT COUNT(CASE TO_CHAR(promo_begin_date, 'yyyy')
WHEN '99' THEN
1
ELSE
0
END) "1999",
COUNT(CASE TO_CHAR(promo_begin_date, 'yyyy')
WHEN '00' THEN
1
ELSE
0
END) "2000"
FROM promotions;
D.SELECT COUNT(DECODE(SUBSTR(TO_CHAR(promo_begin_date, 'yyyy'), 8),
'1999',
1,
0)) "1999",
COUNT(DECODE(SUBSTR(TO_CHAR(promo_begin_date, 'yyyy'), 8),
'2000',
1,
0)) "2000"
FROM promotions;
答案:A
二、题目翻译
查看PROMOTIONS表中PROMO_BEGIN_DATE列的数据
要显示在1999 和2000年开始的promotions的数量
下面哪一个查询给出正确结果?
三、题目解析
B和C选项不正确,TO_CHAR(promo_begin_date, 'yyyy')这个结果就是年显示成四位,但和后面的'00'比较,肯定比对不上。
D选项不正确,SUBSTR(TO_CHAR(promo_begin_date, 'yyyy'), 8),to_char的结果只有4个字符了,截取字符的时候,从第8位开始,明显不对,超出范围。
DECODE的用法,详见:
http://blog.csdn.net/holly2008/article/details/23140591
Examine the data in the PROMO_BEGIN_DATE column of the PROMOTIONS table:
PROMO_BEGIN _DATE
04-jan-00
10-jan-00
15-dec-99
18-oct-98
22-aug-99
You want to display the number of promotions started in 1999 and 2000.
Which query gives the correct output?
A.SELECT SUM(DECODE(SUBSTR(promo_begin_date, 8), '00', 1, 0)) "2000",
SUM(DECODE(SUBSTR(promo_begin_date, 8), '99', 1, 0)) "1999"
FROM promotions;
B.SELECT SUM(CASE TO_CHAR(promo_begin_date, 'yyyy')
WHEN '99' THEN
1
ELSE
0
END) "1999",
SUM(CASE TO_CHAR(promo_begin_date, 'yyyy')
WHEN '00' THEN
1
ELSE
0
END) "2000"
FROM promotions;
C.SELECT COUNT(CASE TO_CHAR(promo_begin_date, 'yyyy')
WHEN '99' THEN
1
ELSE
0
END) "1999",
COUNT(CASE TO_CHAR(promo_begin_date, 'yyyy')
WHEN '00' THEN
1
ELSE
0
END) "2000"
FROM promotions;
D.SELECT COUNT(DECODE(SUBSTR(TO_CHAR(promo_begin_date, 'yyyy'), 8),
'1999',
1,
0)) "1999",
COUNT(DECODE(SUBSTR(TO_CHAR(promo_begin_date, 'yyyy'), 8),
'2000',
1,
0)) "2000"
FROM promotions;
答案:A
二、题目翻译
查看PROMOTIONS表中PROMO_BEGIN_DATE列的数据
要显示在1999 和2000年开始的promotions的数量
下面哪一个查询给出正确结果?
三、题目解析
B和C选项不正确,TO_CHAR(promo_begin_date, 'yyyy')这个结果就是年显示成四位,但和后面的'00'比较,肯定比对不上。
D选项不正确,SUBSTR(TO_CHAR(promo_begin_date, 'yyyy'), 8),to_char的结果只有4个字符了,截取字符的时候,从第8位开始,明显不对,超出范围。
DECODE的用法,详见:
http://blog.csdn.net/holly2008/article/details/23140591
相关文章推荐
- OCP-1Z0-051 第105题 NVL,DECODE,NULLIF,TRUNC,TO_CHAR函数使用
- OCP-1Z0-051 第6题 case when和decode的用法
- OCP-1Z0-051 第106题 COALESCE,DECODE,NVL,NULLIF函数的使用
- OCP-1Z0-051 第169题 使用子查询DELETE数据
- OCP-1Z0-051 第159题 insert语句中使用子查询
- OCP-1Z0-051 补充题库 第41题 nvl函数的使用
- OCP-1Z0-051 第104题 DECODE,NVL,COALESCE函数用法
- OCP-1Z0-051 第107题 AVG,MAX,MIN组函数的使用
- OCP-1Z0-051 第165题 使用子查询update多列数据
- OCP-1Z0-051 第128题 LEFT OUTER JOIN,RIGHT OUTER JOIN的使用
- OCP-1Z0-051 第160题 insert中使用子查询
- OCP-1Z0-051 第108题 COUNT函数使用注意事项
- OCP-1Z0-051 第148题 子查询和ANY,ALL的使用
- OCP-1Z0-051 第110题 AVG的使用
- OCP-1Z0-051 补充题库 第8题 子查询的使用范围
- OCP-1Z0-051 第136题 子查询的使用
- OCP-1Z0-051 第147题 CASE..WHEN的使用
- OCP-1Z0-051 第100题 DECODE,NULLIF函数用法
- OCP-1Z0-051 第64题 order by使用别名注意事项
- OCP-1Z0-051 第109题 聚合函数的使用