【问题标题】:Create a temp table and joining that with another table in the same snowflake query创建一个临时表并将其与同一个雪花查询中的另一个表连接起来
【发布时间】:2022-12-18 22:09:38
【问题描述】:

我有两个雪花表,A 和 B

表A

表B

我想基于表 A 创建临时表并在同一查询中与表 B 连接 类似下面但它给了我SQL compilation error: syntax error line 1 at position 21 unexpected 'create'.错误

 SELECT A.*,B.* FROM (create or replace temporary table TMP_TBL1 as 
                          SELECT * FROM A) A
                          JOIN B B ON A.ADDRESS = B.ADDRESS

【问题讨论】:

    标签: join snowflake-cloud-data-platform


    【解决方案1】:

    创建表必须是一个单独的语句:

    create or replace temporary table TMP_TBL1 
    as 
    SELECT * FROM A;
    
    SELECT A.*,B.* 
    FROM TMP_TBL1 AS  A
    JOIN B AS B 
      ON A.ADDRESS = B.ADDRESS;
    

    替代方法是 CTE(通用表表达式),但没有具体化:

    WITH TMP_TBL1 AS ( 
        SELECT * FROM A
    )
    SELECT A.*,B.* 
    FROM TMP_TBL1 AS  A
    JOIN B AS B 
      ON A.ADDRESS = B.ADDRESS;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-16
      • 2021-10-08
      • 1970-01-01
      • 2022-11-24
      • 2016-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多