【问题标题】:Snowflake - TABLE <table_name> command雪花 - TABLE <table_name> 命令
【发布时间】:2021-05-06 18:17:19
【问题描述】:

我在找TABLE命令的官方文档(和TABLE(<string_literal>)不一样)。

Snowflake 支持TABLE &lt;table_name&gt;,这是SELECT * FROM &lt;table_name&gt; 的简写,但我找不到它的文档。示例:

CREATE OR REPLACE TEMPORARY TABLE t AS SELECT 1 AS col;

SELECT * FROM t;
-- COL 1

TABLE t;
-- COL 1

db<>fiddle demo

它也适用于参数化的表名:

SET name = 't';

TABLE IDENTIFIER($name);
-- COL  1

TABLE TABLE($name);
-- error as TABLE() could be only used in FROM

我搜索了All Commands/Query Syntax,但没有成功。

【问题讨论】:

    标签: snowflake-cloud-data-platform


    【解决方案1】:

    我认为您正在寻找的文档是 Table Literals:

    https://docs.snowflake.com/en/sql-reference/literals-table.html

    【讨论】:

    • 不,我不认为这是同一个结构,我已经把那个链接放在我的问题中了
    • 我猜是支持Postgresql/ANSI SQL(?)的原因
    • 对不起,我重新阅读了这个问题并尝试了语法。我看看能不能找到什么。
    【解决方案2】:

    我认为您对另一个答案的评论是正确的。这是 PostgreSQL TABLE 命令,而不是 Snowflake 功能。

    TABLE 命令

    命令

    TABLE name
    

    等价于

    SELECT * FROM name
    

    它可以用作顶级命令或在复杂查询的部分中用作节省空间的语法变体。只有WITHUNIONINTERSECTEXCEPTORDER BYLIMITOFFSETFETCH和@9876543335@锁定子句可以使用;不能使用WHERE 子句和任何形式的聚合。

    【讨论】:

    • 是的,我知道。但我想知道完整的 Snowflake 功能以及在哪种情况下使用它是正确的。 PostgreSQL 版本支持TABLE [ ONLY ] table_name [ * ]ONLY* 在 Snowflake 中不起作用。其次,如果它是一个语法糖并且被解析为SELECT * FROM,那么TABLE TABLE($name); 不应该以错误结束
    • 我明白了,恐怕我没有更多可提供的了。 Snowflake 文档中的任何内容都没有让我印象深刻。缺少文档表明对该命令的支持可能是偶然的,但我希望有更好的人为您提供答案。
    • 不用担心,它实际上非常有趣,我相信它值得拥有自己的官方文档页面。毕竟这是一个很好的速记:)
    猜你喜欢
    • 1970-01-01
    • 2021-10-03
    • 2021-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多