Выражение FROM
Выражение FROM указывает источник данных, с которыми должна работать остальная часть запроса. С точки зрения логики, выражение FROM — это место, с которого начинается выполнение запроса.
Синтаксис
SELECT ...
FROM objectReference [ JOIN objectReference [ ... ] ]
[ ... ]
где:
objectReference ::=
{
[<namespace>.]<object_name>
[ AT | BEFORE ( <object_state> ) ]
[ CHANGES ( <change_tracking_type> ) ]
[ MATCH_RECOGNIZE ]
[ PIVOT | UNPIVOT ]
[ [ AS ] <alias_name> ]
| <table_function>
[ PIVOT | UNPIVOT ]
[ [ AS ] <alias_name> ]
| ( VALUES (...) )
| ( <subquery> )
[ [ AS ] <alias_name> ]
| DIRECTORY( @<stage_name> )
}
Параметры
-
[<namespace>.]<object_name>
Указывает имя объекта (таблицы или представления), к которому производится запрос.
-
<table_function>
Указывает системную табличную функцию, табличную функцию UDF или метод класса для вызова в выраженииFROM.
-
VALUES
ВыражениеVALUESможет содержать литеральные значения или выражения, которые будут использоваться в выраженииFROM. Это выражение также может содержать псевдонимы таблиц и столбцов (не показаны на схеме выше).
-
<subquery>
Подзапрос в выраженииFROM.
-
DIRECTORY( @stage_name )
Указывает имя этапа, включающего таблицу каталогов.
-
[ AS ] <alias_name>
Указывает имя, заданное для объекта, к которому она относится. Может использоваться с любыми другими подзапросами в выраженииFROM. ОператорASможет опускаться.
-
JOIN
Указывает на выполнение соединения между двумя (или более) таблицами (или представлениями или табличными функциями). Соединение может быть внутренним внешним или иметь другой тип. Соединение может использовать ключевое словоJOINили альтернативный поддерживаемый синтаксис соединения.
Подробное описание см. в разделе ВыражениеJOIN.
Примеры
-
Выбираем все столбцы из таблицы с именем
my_table:SELECT * FROM my_table; -
Выбираем все столбцы из таблицы с именем
my_tableчерез псевдонимmt:SELECT mt.* FROM my_table mt; -
Используем префиксный псевдоним:
SELECT mt.* FROM mt: my_table; -
Выбираем все столбцы из таблицы
my_tableв схемеmy_schema:SELECT * FROM my_schema.my_table; -
Выбираем столбец
iиз табличной функцииrange, где первый столбец функции диапазона переименован вi:SELECT t.i FROM range(1000) AS t(i); -
Выбираем все столбцы из подзапроса:
SELECT * FROM (SELECT * FROM my_table); -
Объединяем две таблицы:
SELECT * FROM my_table JOIN other_table ON my_table.key = other_table.key;Подробное описание см. в разделе Выражение
JOIN.