Ma conclusion est queTesté sur 12c :
- AS est toujours facultatif, avec ou sans "" ; L'AS ne fait aucune différence (alias de colonne uniquement, vous ne pouvez pas utiliser l'alias de table AS précédent)
- Cependant, avec ou sans "" fait une différence car "" permet d'utiliser une minuscule pour un alias
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 l'utilisation de AS et "" pose problème est que PAS AS
Nota: "Les guillemets doubles sont requis si l'alias contient un espace OU s'il contient des caractères minuscules et DOIT apparaître dans le jeu de résultats comme des caractères minuscules. Dans tous les autres cas, ils sont OPTIONNELS et peuvent être ignorés.