如何将数据从 CTE 插入到 Temp Table?

How to insert data from CTE to a Temp Table?

我正在尝试使用 CTE 创建一些逻辑,然后在 CTE 之后不使用 DML 语句,而是尝试使用 CTE 创建临时 table。这在 T-SQL 中是可能的。 GBQ可以吗?

我知道我可以在下面的示例中创建临时 table 而不是 CTE,但只是想知道这种可能性!

WITH xyz AS
(SELECT * FROM table1)

CREATE TEMP TABLE temp1 AS (
SELECT * FROM xyz INNER JOIN table2 on ...);

改用下面的方法

CREATE TEMP TABLE temp1 AS (
  WITH xyz AS
  (SELECT * FROM table1)  
  SELECT * FROM xyz INNER JOIN table2 on ...
);

所以在 2022 年,我相信在 GBQ 中没有脚本或会话将不再有效:

您可以按如下方式编写查询:

WITH xyz AS (
  SELECT 
    * 
  FROM table1
)  
SELECT 
  * 
FROM xyz 
INNER JOIN table2 
        ON ...

然后点击更多按钮->查询设置,如下图:

之后你可以为你的结果设置一个临时的目的地 table 并且你可以在这里定义你的 table 等的名称。在你的情况下它是 temp1:

这样您就可以将查询结果保存到一个临时文件中 table。希望对您有所帮助!