я собираюсь ответить "да"; однако это не задокументировано. Единственная гарантия (согласно документации):
SELECT *
, часто называемая звездочкой выбора, создает один выходной столбец для каждого столбца, который отображается после выполнения полного запроса.
Это явно не указывает, что столбцы расположены в том порядке, в котором они определены - т.е. сначала по порядку ссылок в предложении FROM
, а затем по порядку в каждой ссылке. Я даже не уверен, что в стандарте SQL указан порядок (хотя у меня есть смутные воспоминания о том, что может быть в стандарте 92).
При этом я никогда не видел любого База данных не производит столбцы в указанном порядке. Кроме того, базы данных (в целом) должны поддерживать порядок столбцов для поддержки INSERT
. Вы можете увидеть это сами в INFORMATION_SCHEMA.COLUMNS.ORDINAL_POSITION
. Кроме того, функциональность REPLACE
(для замены выражения столбца в списке SELECT
) будет иметь меньше смысла, если бы порядок не был гарантирован.
Я мог бы утверждать, что вы "довольно безопасны", предполагая, что порядок такой же. И что мы должны лоббировать Google, чтобы исправить документацию, чтобы прояснить это.