Le mot clé "AS" est-il requis dans Oracle pour définir un nom d'alias pour une colonne dans une instruction SELECT?
J'ai remarqué que
SELECT column_name AS "alias"
est le même que
SELECT column_name "alias"
Je me demande quelles sont les conséquences de la définition d’un alias de colonne de cette manière.
Selon la liste select_list Oracle select documentation l'AS est facultatif.
En tant que note personnelle, je pense qu'il est plus facile de lire avec l'AS
(Testé sur Oracle 11g
)
À propos de AS
:
AS
est facultatif.AS
ne doit pas être ajouté, sinon c'est une erreur. À propos de double quote
:
par exemple
-- '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";
SELECT employee_id,department_id AS department
FROM employees
order by department
SELECT employee_id,department_id AS "department"
FROM employees
order by department
--error sur Oracle--
il vaut donc mieux utiliser AS sans double citation si vous utilisez la clause ORDER BY
Les deux sont corrects. Oracle permet l'utilisation des deux.
<kdb></kdb>
est requis quand nous avons un espace dans Alias Name comme
SELECT employee_id,department_id AS "Department ID"
FROM employees
order by department
Ma conclusion est que (Testé sur 12c:
ainsi :
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
Donc, la raison pour laquelle utiliser AS "" provoque le problème n'est pas aussi
Remarque: "" Les guillemets doubles sont obligatoires si l'alias contient un espace OR s'il contient des caractères minuscules et DOIT être affiché dans Result défini en tant que caractères minuscules. Dans tous les autres scénarios, il est FACULTATIF et peut être ignoré.