![](/img/trans.png)
[英]Why use of column alias in same select is not supported in Oracle and Mysql?
[英]Use column alias in same select
如何在同一查询中的其他位置使用列别名? 在Oracle可以吗?
使用EMP_ID的示例:
SELECT
t1.DATE, t2.NAME, t1.ID,
TO_NUMBER( SUBSTR( t1.NUMBER_ID, - 6)
|| TRIM( TO_CHAR( SUBSTR(EMP_ID, 3, 2), '00' ) ), '999999999999') AS CONTRACT,
t2.ADDRESS,
CASE WHEN SUBSTR(t2.COD_EMP, 0, 2) != 'PG' THEN 'PG00'
|| t2.COD_EMP ELSE t2.COD_EMP END AS EMP_ID
FROM
TABLE_01 t1
INNER JOIN TABLE_02 t2 .....
每个标准SQL:任何特定SELECT
子句中的所有列都被计算为“好像”它们都是并行计算的(以允许某些实现精确地执行)。
因此,不允许依赖于同一SELECT
子句中定义的另一列,因为它的值尚未计算。
如果您查看文档 ,您将看到您只能在order by
子句中使用它:
为列表达式指定别名。 Oracle数据库将在结果集的列标题中使用此别名。 AS关键字是可选的。 别名在查询期间有效地重命名选择列表项。 别名可以在order_by_clause中使用,但不能在查询中的其他子句中使用 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.