您的位置:首页 > 产品设计 > UI/UE

OCP 1Z0 051 QUESTION NO: 16

2014-06-02 22:08 387 查看
QUESTION NO: 16

Examine the structure of the STUDENTS table:

You need to create a report of the 10 students who achieved the highest ranking in the course INT

SQL and who completed the course in the year 1999.

Which SQL statement accomplishes this task?



A. SELECT student_ id, marks, ROWNUM "Rank"

FROM students

WHERE ROWNUM <= 10

AND finish_date BETWEEN '01-JAN-99' AND '31-DEC-99

AND course_id = 'INT_SQL'

ORDER BY marks DESC;

B. SELECT student_id, marks, ROWID "Rank"

FROM students

WHERE ROWID <= 10

AND finish_date BETWEEN '01-JAN-99' AND '31-DEC-99'

AND course_id = 'INT_SQL'

ORDER BY marks;

C. SELECT student_id, marks, ROWNUM "Rank"

FROM(SELECT student_id, marks

FROMstudents

WHERE ROWNUM <= 10

AND finish_date BETWEEN '01-JAN-99' AND '31-DEC-99'

AND course_id = 'INT_SQL'

ORDER BY marks DESC);

D. SELECTstudent_id, marks, ROWNUM "Rank”

FROM(SELECT student_id, marks

FROM students

WHERE (finish_date BETWEEN ’01-JAN-99 AND ’31-DEC-99’

AND course_id = ‘INT_SQL’

ORDER BY marks DESC)

WHERE ROWNUM <= 10 ;

E. SELECTstudent id, marks, ROWNUM “Rank”

FROM(SELECT student_id, marks

FROM students

ORDER BY marks)

WHERE ROWNUM <= 10

AND finish date BETWEEN ’01-JAN-99’ AND ’31-DEC-99’

AND course_id = ‘INT_SQL’;

order by 与 rownum的执行顺序:order by 在前,rownum在后。

所以如果要取排序后的序号,就要嵌套一层才行。

SQL> SELECT rownum AS order后序号, a.*
2    FROM (SELECT rownum AS order前序号, dname FROM dept ORDER BY 2) a;
ORDER后序号    ORDER前序号 DNAME
----------- ----------- --------------
1           1 ACCOUNTING
2           4 OPERATIONS
3           2 RESEARCH
4           3 SALES
4 rows selected
可以看到,对于dname的顺序来说 子查询内的序号是错的。

E 少了desc。

Answer: D
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: