Мой вывод таков: (Проверено на 12c):
- AS всегда необязателен, с или без ""; AS не имеет значения (только псевдоним столбца, нельзя использовать псевдоним предыдущей таблицы 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
Итак, причина, по которой ИСПОЛЬЗОВАНИЕ КАК И "" вызывает проблему, НЕ КАК
Примечание:"" двойные кавычки требуются, если псевдоним содержит пробел ИЛИ, если он содержит символы нижнего регистра и ДОЛЖЕН отображаться в Результате как символы нижнего регистра. Во всех других сценариях это ДОПОЛНИТЕЛЬНО и может быть проигнорировано.