Chinaunix首页 | 论坛 | 博客
  • 博客访问: 595607
  • 博文数量: 487
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 4916
  • 用 户 组: 普通用户
  • 注册时间: 2018-07-05 13:59
个人简介

ocp考试资料群:569933648 验证码:ocp OCP 12c 19c考试题库解析与资料群:钉钉群号:35277291

文章分类

全部博文(487)

文章存档

2023年(37)

2021年(151)

2020年(37)

2019年(222)

2018年(38)

我的朋友

分类: Oracle

2019-03-01 11:53:56

49、(11-1) choose the best answer

Examine the structure of the SHIPMENTS table:

You want to generate a report that displays the PO_ID and the penalty amount to be paid(罚款数额) if the SHIPMENT_DATE is later than one month from the PO_DATE. The penalty is $20 per day.

Evaluate the following two queries:

SQL> SELECT po_id, CASE

WHEN MONTHS_BETWEEN (shipment_date,po_date)>1 THEN

TO_CHAR((shipment_date - po_date)*20) ELSE 'No Penalty' END PENALTY

FROM shipments;

SQL>SELECT po_id, DECODE

(MONTHS_BETWEEN(po_date,shipment_date)>1,

TO_CHAR((shipment_date - po_date) * 20, 'NO Penalty') PENALTY

FROM shipments;

Which statement is true regarding the above commands?

A) Only the second query executes successfully but gives a wrong result.

B) Only the second query executes successfully and gives the correct result.

C) Only the first query executes successfully but gives a wrong result.

D) Both execute successfully and give correct results.

E) Only the first query executes successfully and gives the correct result.

Answer:E

(解析:decode 函数的语法是,decode(条件,值 1,返回值 1,值 2,返回值 2,...值 n,返回值 n,缺省值),

所以不能有>1 的条件判断。原来 051 的题。

该语句可以改写为下面的语句:

SELECT empno,hiredate,

CASE

WHEN MONTHS_BETWEEN (sysdate,hiredate)>1

THEN TO_CHAR((sysdate - hiredate )*20)

ELSE 'No Penalty'

END PENALTY


FROM emp;)

阅读(941) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~