您的位置:首页 > 其它

OCP-1Z0-051 第6题 case when和decode的用法

2014-04-14 14:02 375 查看
一、原题

Examine the structure of the SHIPMENTS table:
Name               Null             Type
PO_ID              NOT NULL       NUMBER(3)
PO_DATE            NOT NULL       DATE
SHIPMENT_DATE      NOT NULL       DATE
SHIPMENT_MODE                     VARCHAR2(30)
SHIPMENT_COST                     NUMBER(8,2)
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. Both execute successfully and give correct results.
B. Only the first query executes successfully but gives a wrong result.
C. Only the first query executes successfully and gives the correct result.
D. Only the second query executes successfully but gives a wrong result.
E. Only the second query executes successfully and gives the correct result.

        答案 C

二、原题翻译

检查SHIPMENTS表结构如下:
Name               Null             Type

PO_ID              NOT NULL       NUMBER(3)

PO_DATE            NOT NULL       DATE

SHIPMENT_DATE      NOT NULL       DATE

SHIPMENT_MODE                     VARCHAR2(30)

SHIPMENT_COST                     NUMBER(8,2)
要获取一个报表,报表内容显示PO_ID和支付的罚款总金额,SHIPMENT_DATE与PO_DATE进行比较,SHIPMENT_DATE如果比PO_DATE晚一个月,则每天罚款$20。
下面有两条查询语句:
上面的命令哪句话是正确的?
A.两个查询都成功,并且结果都正确。
B.只有第一个查询成功,但是结果是错误的。
C.只有第一个查询成功,并且结果是正确的。
D.只有第二个查询成功,但是结果是错误的。
E.只有第二个查询成功,并且结果是正确的。

关于case when和decode的相关知识请参考:

        http://blog.csdn.net/holly2008/article/details/23140591
关于months_between的详细用法,请参考:

        http://blog.csdn.net/holly2008/article/details/23141827
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息