OCP 1Z0 051 V9 02 105题

SQL解题技巧
本文深入探讨了使用SQL解决特定问题的技巧,通过实例演示如何在PROMO表中筛选出开始日期与结束日期相同的促销活动,正确应用DECODE函数进行判断。

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.youkuaiyun.com/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

105. 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), 'Same Day') 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;

Answer: D

答案解析:

A。NULLIF里面额数据类型为date与 'Same Day'字符串类型不匹配,错误。

B。TRUNC将小数部分截断,但类型不一致,错误。

C。TO_CHAR(TRUNC(promo_end_date-promo_end_date)),如果相等,TRUNC为0,to_char后,字符为0,即始终有值,NVL2返回第二个值,即NULL

sh@TEST0924>  SELECT promo_name, NVL2(TO_CHAR(TRUNC(promo_end_date-promo_end_date)), NULL,'SameDay') FROM PROMOTIONS;


PROMO_NAME                     NVL2(TO

------------------------------ -------

NO PROMOTION #

newspaper promotion #16-108

post promotion #20-232

newspaper promotion #16-349

internet promotion #14-471

D。实验验证:正确的。
scott@TESTDB> SELECT  DECODE((NULLIF('11-mon-01','11-mon-01')),null,'same') from dual;
 
DECO
----
same


scott@TESTDB> SELECT  DECODE(null,null,'same') from dual;
 
DECO
----
same
 

           

给我老师的人工智能教程打call!http://blog.youkuaiyun.com/jiangjunshow
这里写图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值