原题两个sql如下:
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;
经过试验得到:
SELECT distinct ename || to_char(sal) "sl" from emp ORDER BY sl;----失败
SELECT distinct ename || to_char(sal) "sl" from emp ORDER BY 1;----可以成功
SELECT distinct ename || to_char(sal) sl from emp ORDER BY sl;-----可以成功
select ename AS "ea" from emp ORDER BY "ea";--------可以成功。
结论为:希望使用小写为列的别名,并且希望使用此别名排序时,必须和在命名别名时一样,在order by 中带上双引号.