- 类别:
FROM¶
指定要在 SELECT 语句中使用的表、视图或表函数。
- 另请参阅:
AT | BEFORE , CHANGES , CONNECT BY , JOIN , ASOF JOIN, MATCH_RECOGNIZE, PIVOT , SAMPLE / TABLESAMPLE , SEMANTIC_VIEW, UNPIVOT, 使用联接, 分析时间序列数据
语法¶
其中:
参数¶
JOIN此分子句指定在两个或多个表(或者视图或表函数)之间执行联接。联接可以是内部联接、外部联接或其他类型的联接。联接可以使用关键字 JOIN 或支持的替代联接语法。有关联接的更多详细信息,请参阅 JOIN 和 ASOF JOIN。
[ AS ] alias_name指定一个名称,该名称将提供给它附加到的对象引用。可以与 FROM 子句中的任何其他分子句一起使用。
别名必须遵循 对象标识符 的规则。
VALUESVALUES子句可以指定要在FROM子句中使用的字面量值或表达式。此子句可以包含表别名和列别名(上图中未显示)。有关 VALUES 子句的更多详细信息,请参阅 VALUES。
对象或表函数子句¶
[namespace.]object_name指定要查询的对象(表或视图)的名称。
可以使用
namespace`(以 :samp:`db_name.schema_name.object_name或schema_name.object_name的形式)限定对象名称。如果上下文可以从会话的当前数据库和架构派生,则不需要命名空间。指定要查询的表/视图名称时,还可以指定以下可选分子句:
{ AT | BEFORE } ( object_state )可选分子句,为 Time Travel 指定表或视图的基于时间或基于事件的历史状态。有关更多详细信息,请参阅 AT | BEFORE。
MATCH_RECOGNIZE用于查找与模式匹配的行序列的可选分子句。有关更多详细信息,请参阅 MATCH_RECOGNIZE。
table_function指定要在 FROM 子句中调用的系统定义的表函数、UDF 表函数或类方法。有关详细信息,请参阅以下主题:
{ PIVOT | UNPIVOT }SAMPLE可选分子句,指定对表/视图中的行进行采样。有关更多详细信息,请参阅 SAMPLE / TABLESAMPLE。
内联视图子句¶
[ LATERAL ] ( subquery )指定 FROM 子句中的内联视图。如果使用可选的
LATERAL关键字,则subquery可以引用当前 FROM 子句中和内联视图左侧的其他表(或者视图或表函数)中的列。有关子查询的更多一般信息,请参阅 使用子查询。
暂存文件子句¶
@[namespace.]stage_name[/path]指定要查询的命名暂存区(或指定
~以引用当前用户的暂存区,或指定后跟表名的%以引用指定表的暂存区)。查询暂存区时,还可以选择指定命名文件格式和模式:
( FILE_FORMAT => format_name [ , PATTERN => 'regex_pattern' ] )指定用于暂存区的命名文件格式对象,和用于筛选暂存区中的文件集的模式。
有关查询暂存区的更多详细信息,请参阅 Query data in staged files。
目录表子句¶
DIRECTORY( @stage_name )指定包含 目录表 的暂存区的名称。
分层查询结果¶
hierarchical_query_result分层查询结果是使用子句(例如 CONNECT BY)查询分层数据表所产生的结果集。有关更多详细信息,请参阅 CONNECT BY。
语义视图子句¶
SEMANTIC_VIEW(...)指定要 查询 的 语义视图。有关信息,请参阅 SEMANTIC_VIEW。
使用说明¶
对象名称是 SQL 标识符。默认情况下,它们不区分大小写。要保留大小写,请将它们放在双引号 (
" ") 之间。
示例¶
创建一个表并将数据加载到其中:
以下是使用 FROM 子句的基本示例:
此示例与上一个示例相同,但指定由表的架构限定的表名:
此示例创建一个内联视图,然后在查询中使用它:
此示例查询表中 10% 数据的样本:
此示例执行 UDTF(用户定义的表函数):
这些示例使用 AT 子句从过去的以下指定点返回历史数据:
比当前时间早一天 (
-86400 = -3600 * 24)。特定时间和日期。
有关
AT的更多详细信息,请参阅 AT | BEFORE。
此示例查询位于命名暂存区中的文件:
以下示例检索名为 mystage 的暂存区 目录表 中的所有元数据列:
以下示例从大小超过 100 K 字节的文件中检索目录表的 FILE_URL 列值:
以下示例从逗号分隔值文件中检索目录表的 FILE_URL 列值: