有没有办法在Asterisk(*)之后为ORACLE SQL中的不同列创建别名?
SELECT *
FROM TABLE
WHERE INDEX_1 = 5
AND INDEX_2 = 6
相反有没有办法在*之后设置别名?
SELECT * INDEX_1 AS INDECIES
FROM TABLE
WHERE INDEX_1 = 5
AND INDEX_2 = 6
;
答案 0 :(得分:0)
没有
part中SELECT
语句的select_list oracle grammar的语法是:
{ *
| { query_name.*
| [ schema. ]
{ table | view | materialized view } .*
| expr [ [ AS ] c_alias ]
}
[, { query_name.*
| [ schema. ]
{ table | view | materialized view } .*
| expr [ [ AS ] c_alias ]
}
]...
}
这意味着,星号和其他内容,或行数限定的星号和离散列。 *。
后无法使用c_alias令牌可以做什么,就是组合星号和字段列表,即使这两个部分都引用同一个表,如下所示:
SELECT
TA1.*,
TA1.Column1 AS ColumnX
FROM Table1 TA1
不鼓励various reasons使用星号。在ad-hoc查询中使用它是为了方便。
答案 1 :(得分:0)
虽然也可以使用一点“混合”:行数限定的星号 AND (即不是OR)字段列表,例如
SQL> select d.*, e.ename
2 from dept d, emp e
3 where e.deptno = d.deptno
4 and d.deptno = 10;
DEPTNO DNAME LOC ENAME
---------- -------------- ------------- ----------
10 ACCOUNTING NEW YORK KING
10 ACCOUNTING NEW YORK CLARK
10 ACCOUNTING NEW YORK MILLER
10 ACCOUNTING NEW YORK
10 ACCOUNTING NEW YORK
SQL>
答案 2 :(得分:0)
如果您使用的是SQLPLUS,则可以使用COLUMN命令设置为任何列显示的标题,无论是使用星号还是按名称选择它。
E.g。 COLUMN col_123 HEADING'帐号'。
此处的SQLPLUS参考位于:https://docs.oracle.com/cd/B28359_01/server.111/b31189/ch12013.htm