18. Examine the structure of the PROMOTIONS table:
name Null Type
PROMO_ID NOT NULL NUMBER(6)
PROMO_NAME NOT NULL VARCHAR2(30)
PROMO_CATEGORY NOT NULL VARCHAR2(30)
PROMO_COST NOT NULL NUMBER(10,2)
The management wants to see a report of unique promotion costs in each promotion category.
Which query would achieve the required result?
A. SELECT DISTINCT promo_cost, promo_category FROM promotions;
B. SELECT promo_category, DISTINCT promo_cost FROM promotions;
C. SELECT DISTINCT promo_cost, DISTINCT promo_category FROM promotions;
D. SELECT DISTINCT promo_category, promo_cost FROM promotions ORDER BY 1;
该题中A、D都能执行。但A显示顺序不对
SQL> SELECT *
2 FROM (SELECT DISTINCT promo_cost, promo_category FROM sh.promotions)
3 WHERE rownum <= 10;
PROMO_COST PROMO_CATEGORY
------------ ------------------------------
0.00 ad news
0.00 NO PROMOTION
200.00 newspaper
300.00 post
400.00 newspaper
600.00 internet
1100.00 TV
1400.00 internet
1500.00 TV
2000.00 post
10 rows selected
SELECT promo_category, DISTINCT promo_cost FROM sh.promotions
ORA-00936: 缺失表达式
SELECT DISTINCT promo_cost, DISTINCT promo_category FROM sh.promotions
ORA-00936: 缺失表达式
SQL> SELECT * 2 FROM (SELECT DISTINCT promo_category, promo_cost 3 FROM sh.promotions 4 ORDER BY 1) 5 WHERE rownum <= 10;PROMO_CATEGORY PROMO_COST------------------------------ ------------NO PROMOTION 0.00TV 1100.00TV 1500.00TV 3100.00TV 4800.00TV
5200.00TV 5700.00TV 7100.00TV 7300.00TV 7700.0010 rows selected
Answer: D