Я думаю, что вопрос в руководстве по сертификации сформулирован плохо. Вы можете явных имен столбцов при выборе из вида, и это работает:
CREATE VIEW MyView AS SELECT a, b, c FROM MyTable;
SELECT a AS d, b AS e, c AS f FROM MyView;
Проблема заключается не давая псевдонимы столбцов в явном виде. Вот проблема: если вы полагаетесь на это вместо определения вида с различными именами столбцов, и вид состоит из объединения таким образом, что имена столбцов неоднозначны, вы столкнетесь с проблемами:
CREATE VIEW MyView AS
SELECT m.a, m.b, m.c, o.a, o.b, o.c
FROM MyTable m JOIN OtherTable o;
Это не действительный вид, потому что в определении представления все имена столбцов должны быть разными. Например, вы получите неоднозначные результаты, когда вы запрашиваете мнение:
SELECT a FROM MyView;
ли это выбрать первый a
столбец или второй столбец a
?
Таким образом, у вас должен быть отдельный набор имен столбцов в определении, этого недостаточно, чтобы сделать их различимыми при запросе вида.
Вот почему я думаю, что вопрос руководства по сертификации был слабо сформулирован. Речь идет не о переименовании столбцов явно, а о том, чтобы столбцы представления имели разные имена. Это обычная причина для переименования столбцов, поэтому, вероятно, именно поэтому человек, написавший этот вопрос, написал это так.
либо из других методов, указанных в вопросе может разрешить неоднозначность:
CREATE VIEW MyView (a, b, c, d, e, f) AS
SELECT m.a, m.b, m.c, o.a, o.b, o.c
FROM MyTable m JOIN OtherTable o;
или
CREATE VIEW MyView AS
SELECT m.a, m.b, m.c, o.a AS d, o.b AS e, o.c AS f
FROM MyTable m JOIN OtherTable o;
В любом случае, вы получите псевдонимы столбцов:
SELECT * FROM MyView; -- returns result with columns a, b, c, d, e, f
Я не могу себе представить, что они здесь означают. Возможно, вы называете столбцы тем, что вы хотите и надеетесь, что они будут? Выполнение инструкции «ALTER VIEW» перед столбцом? Мне так любопытно, как ты. – Eric