sql - sentencias - ¿Se requiere la palabra clave ''como'' en Oracle para definir un alias?
que es sql y para que sirve (6)
AS sin comillas dobles es bueno.
SELECT employee_id,department_id AS department
FROM employees
order by department
--De acuerdo--
SELECT employee_id,department_id AS "department"
FROM employees
order by department
--error en oráculo--
así que es mejor usar AS sin doble cita si usa la cláusula ORDER BY
¿Se requiere la palabra clave ''AS'' en Oracle para definir un nombre de alias para una columna en una instrucción SELECT?
Me di cuenta que
SELECT column_name AS "alias"
es lo mismo que
SELECT column_name "alias"
Me pregunto cuáles son las consecuencias de definir un alias de columna de la última manera.
Ambos son correctos. Oracle permite el uso de ambos.
De acuerdo con la lista de selección de documentación de selección de Oracle, el AS es opcional.
Como nota personal, creo que es más fácil de leer con el AS
Mi conclusión es que (Probado en 12c):
- AS es siempre opcional, con o sin ""; AS no hace diferencia (alias de columna solamente, no puede usar el alias de tabla AS anterior)
- Sin embargo, con o sin "" hace la diferencia porque "" permite una letra minúscula para un alias
así:
SELECT {T / t} FROM (SELECT 1 AS T FROM DUAL); -- Correct
SELECT "tEST" FROM (SELECT 1 AS "tEST" FROM DUAL); -- Correct
SELECT {"TEST" / tEST} FROM (SELECT 1 AS "tEST" FROM DUAL ); -- Incorrect
SELECT test_value AS "doggy" FROM test ORDER BY "doggy"; --Correct
SELECT test_value AS "doggy" FROM test WHERE "doggy" IS NOT NULL; --You can not do this, column alias not supported in WHERE & HAVING
SELECT * FROM test "doggy" WHERE "doggy".test_value IS NOT NULL; -- Do not use AS preceding table alias
Entonces, la razón por la cual USAR COMO Y "" causa un problema NO ES AS
Recuerde que "" le permite crear un alias minúsculas
<kdb></kdb>
es necesario cuando tenemos un espacio en Alias Name como
SELECT employee_id,department_id AS "Department ID"
FROM employees
order by department
(Probado en Oracle 11g
)
Sobre AS
:
- Cuando se usa en la columna de resultados ,
AS
es opcional. - Cuando se usa en el nombre de la tabla ,
AS
no debe agregarse, de lo contrario, es un error.
Acerca de la double quote
:
- Es opcional y válido tanto para la columna de resultados como para el nombre de la tabla.
p.ej
-- ''AS'' is optional for result column
select (1+1) as result from dual;
select (1+1) result from dual;
-- ''AS'' shouldn''t be used for table name
select ''hi'' from dual d;
-- Adding double quotes for alias name is optional, but valid for both result column & table name,
select (1+1) as "result" from dual;
select (1+1) "result" from dual;
select ''hi'' from dual "d";