一、原题
二、题目翻译
三、题目解析
Evaluate the following SQL statement:
SQL>SELECT promo_id, promo_category
FROM promotions
WHERE promo_category = 'Internet'
ORDER BY 2 DESC
UNION
SELECT promo_id, promo_category
FROM promotions
WHERE promo_category = 'TV'
UNION
SELECT promo_id, promo_category
FROM promotions
WHERE promo_category = 'Radio';
Which statement is true regarding the outcome of the above query?
A. It executes successfully and displays rows in the descending order of PROMO_CATEGORY.
B. It produces an error because positional notation cannot be used in the ORDER BY clause with SET operators.
C. It executes successfully but ignores the ORDER BY clause because it is not located at the end of the compound statement.
D. It produces an error because the ORDER BY clause should appear only at the end of a compound query-that is, with the last SELECT statement.
答案:D
SQL>SELECT promo_id, promo_category
FROM promotions
WHERE promo_category = 'Internet'
ORDER BY 2 DESC
UNION
SELECT promo_id, promo_category
FROM promotions
WHERE promo_category = 'TV'
UNION
SELECT promo_id, promo_category
FROM promotions
WHERE promo_category = 'Radio';
Which statement is true regarding the outcome of the above query?
A. It executes successfully and displays rows in the descending order of PROMO_CATEGORY.
B. It produces an error because positional notation cannot be used in the ORDER BY clause with SET operators.
C. It executes successfully but ignores the ORDER BY clause because it is not located at the end of the compound statement.
D. It produces an error because the ORDER BY clause should appear only at the end of a compound query-that is, with the last SELECT statement.
答案:D
二、题目翻译
评估下面的SQL查询语句:
关于上面查询的结果,下面说法正确的是哪一个?
A.执行成功,并降序显示所有PROMO_CATEGORY行。
B.报错,因为位置记号不能用在带有SET操作的ORDER BY子句中。
C.执行成功,但是会忽略ORDER BY子句,因为它没有位于复合语句的最后。
D.报错,因为ORDER BY 子句只能出现在复合查询的最后-最后一个SELECT语句中。
关于上面查询的结果,下面说法正确的是哪一个?
A.执行成功,并降序显示所有PROMO_CATEGORY行。
B.报错,因为位置记号不能用在带有SET操作的ORDER BY子句中。
C.执行成功,但是会忽略ORDER BY子句,因为它没有位于复合语句的最后。
D.报错,因为ORDER BY 子句只能出现在复合查询的最后-最后一个SELECT语句中。
三、题目解析
集合操作中,ORDER BY只能放在最后,前面的结果集进行集合操作之后,可以看作一个整体,然后在最后再进行排序。