Sql 在同一选择中使用列别名

Sql 在同一选择中使用列别名,sql,oracle,Sql,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_EM

如何在同一查询中的其他位置使用列别名?在甲骨文中可能吗

使用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 .....
如果选中,您将看到只允许在
order by
子句中使用它:

指定列表达式的别名。Oracle数据库将使用 此别名位于结果集的列标题中。AS关键字是 可选。别名有效地重命名了的“选择”列表项 查询的持续时间别名可在order\u by\u子句中使用 但查询中没有其他子句


根据标准SQL:任何特定的
SELECT
子句中的所有列都是“像”并行计算的(以允许某些实现精确地进行计算)


因此,您不允许依赖同一
SELECT
子句中定义的另一列,因为它的值尚未计算。

不,您不能,除非您有一个带有别名列的子查询,否则您可以在
order by
子句中使用它。的可能重复(以及许多其他)