64. View the E xhibit and examine the data in the PROMO_CATEGORY and PROMO_COST columns of
the PROMOTIONS table.
Evaluate the following two queries:
SQL>SELECT DISTINCT promo_category to_char(promo_cost)"code"
FROM promotions
ORDER BY code;
SQL>SELECT DISTINCT promo_category promo_cost "code"
FROM promotions
ORDER BY 1;
Which statement is true regarding the execution of the above queries?
A. Only the first query executes successfully.
B. Only the second query executes successfully.
C. Both queries execute successfully but give different results.
D. Both queries execute successfully and give the same result.
Answer: B
答案解析:
order by 可以指定表达式、别名或列位置作为排序条件,别名要完全匹配
列别名并没有完全匹配,所以报错。
sh@TEST0924> SELECT DISTINCT promo_category, to_char(promo_cost)"code"
2 FROM promotions
3 ORDER BY code;
ORDER BY code
*
ERROR at line 3:
ORA-00904: "CODE": invalid identifier
应该改为:
sh@TESTDB> SELECT DISTINCT promo_category, to_char(promo_cost)"code"
2 FROM promotions
3 where rownum<6
4 ORDER BY "code";
PROMO_CATEGORY code
------------------------------ ----------------------------------------
NO PROMOTION 0
newspaper 200
post 300
newspaper 400
internet 600
第二个SQL如下,可执行成功,原题差一个逗号
sh@TESTDB> SELECT DISTINCT promo_category,promo_cost "code"
2 FROM promotions
3 where rownum<6
4 ORDER BY 1;
PROMO_CATEGORY code
------------------------------ ----------
NO PROMOTION 0
internet 600
newspaper 200
newspaper 400
post 300