一、原题
二、题目翻译
三、题目解析
Examine the structure of the PROMOS table:
Name Null Type
PROMO_ID NOT NULL NUMBER(3)
PROMO_NAME VARCHAR2(30)
PROMO_START_DATE NOT NULL DATE
PROMO_END_DATE NOT NULL DATE
You want to display the list of promo names with the message 'Same Day' for promos that started and ended on the same day.
Which query gives the correct output?
A. SELECT promo_name,NVL(NULLIF(promo_start_date,promo_end_date),'Same Day')
FROM promos;
B. SELECT promo_name,NVL(TRUNC(promo_end_date-promo_start_date),'SameDay')
FROM promos;
C. SELECT promo_name,NVL2(TO_CHAR(TRUNC(promo_end_date-promo_start_date)),NULL,'SameDay')
FROM promos;
D. SELECT promo_name,DECODE((NULLIF(promo_start_date,promo_end_date)),NULL,'Same day')
FROM promos;
答案:D
Name Null Type
PROMO_ID NOT NULL NUMBER(3)
PROMO_NAME VARCHAR2(30)
PROMO_START_DATE NOT NULL DATE
PROMO_END_DATE NOT NULL DATE
You want to display the list of promo names with the message 'Same Day' for promos that started and ended on the same day.
Which query gives the correct output?
A. SELECT promo_name,NVL(NULLIF(promo_start_date,promo_end_date),'Same Day')
FROM promos;
B. SELECT promo_name,NVL(TRUNC(promo_end_date-promo_start_date),'SameDay')
FROM promos;
C. SELECT promo_name,NVL2(TO_CHAR(TRUNC(promo_end_date-promo_start_date)),NULL,'SameDay')
FROM promos;
D. SELECT promo_name,DECODE((NULLIF(promo_start_date,promo_end_date)),NULL,'Same day')
FROM promos;
答案:D
二、题目翻译
查看PROMOS表结构:
要显示promos names,如果开始和结束为同一天的promos使用'Same Day'显示.
哪个给出正确输出?
要显示promos names,如果开始和结束为同一天的promos使用'Same Day'显示.
哪个给出正确输出?
三、题目解析
nullif的意思是,如果两个参数相等,则返回null, 如果不相等,则返回第一个参数的值。
A选项不正确,如果是同一天,则nullif的结果为null,如果不是同一天,则nullif的结果为日期类型,'Same Day'是字符类型,隐式转换成日期时报错。
B选项不正确,TRUNC的结果是数字,'Same Day'隐式转换成数值时报错。
C选项不正确,不能得到想要的结果。
B选项不正确,TRUNC的结果是数字,'Same Day'隐式转换成数值时报错。
C选项不正确,不能得到想要的结果。