[每日一题] OCP1z0-047 :2013-08-07 SELECT---PRODUCT_INFORMATION...................27

来源:互联网 发布:微信公众号开发java 编辑:程序博客网 时间:2024/06/05 10:27

转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/9821681



答案B


英语单词备注:

warranty:['wɔrənti] 保证;担保;授权;(正当)理由

purchased ['pə:tʃəst] 已经购买的

fulfill[ful'fil]  满足

 

根据题意是需要查所有产品信息中的产品名称、类别的id号、以及保修期到期时间(SYSDATE+WARRANTY_PERIOD),没有保修期的产品显示在行记录的上面,有保修期的产品按保修期的时间从小到大排序显示在行记录的下面。

   下面根据测试来解释ABCD的答案。

一、登录oe用户,查看有多少表。

idle> conn oe/oeConnected.oe@MYDB> SELECT TABLE_NAME FROM TABS;TABLE_NAME------------------------------PROMOTIONSPRODUCT_INFORMATIONPRODUCT_DESCRIPTIONSORDER_ITEMSORDERSINVENTORIES6 rows selected.

二、查PRODUCT_INFORMATION的表结构

oe@MYDB> desc PRODUCT_INFORMATION Name                                                  Null?    Type ----------------------------------------------------- -------- ------------------------------------ PRODUCT_ID                                            NOT NULL NUMBER(6) PRODUCT_NAME                                                   VARCHAR2(50) PRODUCT_DESCRIPTION                                            VARCHAR2(2000) CATEGORY_ID                                                    NUMBER(2) WEIGHT_CLASS                                                   NUMBER(1) WARRANTY_PERIOD                                                INTERVAL YEAR(2) TO MONTH SUPPLIER_ID                                                    NUMBER(6) PRODUCT_STATUS                                                 VARCHAR2(20) LIST_PRICE                                                     NUMBER(8,2) MIN_PRICE                                                      NUMBER(8,2) CATALOG_URL                                                    VARCHAR2(50)

三、题目解释:

1、答案A不正确:

   排序的时间不对SYSDATEWARRANTY_PERIOD(即当前的时间减去保修期到期时间),应该写成SYSDATE+WARRANTY_PERIOD(即保修期到期时间)

 

2、答案B正确

 

1、 答案C不正确:

排序的时间不对SYSDATE(即当前时间),应该写成SYSDATE+WARRANTY_PERIOD(即保修期到期时间)

 

2、 答案D不正确:

 没有排序,并且加了where限制条件,题意是要查所有的产品。

 

测试操作如下:


oe@MYDB> SELECT product_name,category_id,SYSDATE+warranty_period AS "Warranty expire date" FROM  2  product_information ORDER BY SYSDATE+warranty_period;PRODUCT_NAME                                       CATEGORY_ID Warranty exp-------------------------------------------------- ----------- ------------Screws <S.32.P>                                             19 07-AUG-13Screws <S.32.S>                                             19 07-AUG-13Screws <Z.16.S>                                             19 07-AUG-13Screws <Z.24.S>                                             19 07-AUG-13Screws <Z.28.P>                                             19 07-AUG-13Base ISO CP - BL                                            29 07-AUG-13Client ISO CP - S                                           29 07-AUG-13省略中间结果。。。。。。。。。。。。。。。。。。。。。。Latex Gloves                                                39 07-AUG-23Desk - S/V                                                  31 07-AUG-28Desk - W/48/R                                               31 07-AUG-33Desk - W/48                                                 31 07-AUG-33Desk - OS/O/F                                               31 07-AUG-38288 rows selected.

补充:order by(默认排序是ASC从小到大),如果从大到小是DESC.对于null的类据怎么排序,null的数据排序要么排在最前面,要么排在最后面。

升序,null排在最后面


gyj@MYDB> select  id,name from t1 order by name;        ID NAME---------- ----------------------------------------------------------------------------------------------------         1 AAAAA         2 CCCCB         3 CCCCC         4 DDDDD         5 EEEEE         6 FFFFF         9 FFFFF         7 GGGGGG         8 HHHHH        10 RRRRR        11        12

降序,null排在最前面


gyj@MYDB> select  id,name from t1 order by name desc;        ID NAME---------- ----------------------------------------------------------------------------------------------------        12        11        10 RRRRR         8 HHHHH         7 GGGGGG         9 FFFFF         6 FFFFF         5 EEEEE         4 DDDDD         3 CCCCC         2 CCCCB         1 AAAAA

如果升序,想让null排在最前面那要使用nulls first

gyj@MYDB> select  id,name from t1 order by name nulls first;        ID NAME---------- ----------------------------------------------------------------------------------------------------        11        12         1 AAAAA         2 CCCCB         3 CCCCC         4 DDDDD         5 EEEEE         9 FFFFF         6 FFFFF         7 GGGGGG         8 HHHHH        10 RRRRR

如果降序,想让null排在最后面那要使用nulls last

gyj@MYDB> select  id,name from t1 order by name desc nulls last;        ID NAME---------- ----------------------------------------------------------------------------------------------------        10 RRRRR         8 HHHHH         7 GGGGGG         9 FFFFF         6 FFFFF         5 EEEEE         4 DDDDD         3 CCCCC         2 CCCCB         1 AAAAA        11        12


QQ:252803295

学习交流QQ群:
DSI&Core Search  Ⅰ 群:127149411(技术:已满)
DSI&Core Search  Ⅱ 群:177089463(技术:未满)
DSI&Core Search  Ⅲ 群:284596437(技术:未满)
DSI&Core Search  Ⅳ 群:192136702(技术:未满)
DSI&Core Search  Ⅴ 群:285030382(闲聊:未满)



MAIL:oracledba_cn@hotmail.com

BLOG: http://blog.csdn.net/guoyjoe

WEIBO:http://weibo.com/guoyJoe0218

ITPUB: http://www.itpub.net/space-uid-28460966.html

OCM:   http://education.oracle.com/education/otn/YGuo.HTM





原创粉丝点击