Sql 将命名子查询提取到单独的文件中

Sql 将命名子查询提取到单独的文件中,sql,testing,google-bigquery,refactoring,Sql,Testing,Google Bigquery,Refactoring,假设我有一个包含SQL查询的文件,其中包含多个命名子查询: WITH first_part AS ( ... ), second_part AS ( ... ) SELECT * FROM first_part.... 我想将first\u part和second\u part提取到独立文件中,以便更容易编写测试 当然,我可以简单地将它们提取到单独的文件中,然后编写一些代码,在运行时将所有查询合并成一个查询。但我想知道是否有一些“传统”的方法来实现这一点?您不会用CTE来实现这一点。

假设我有一个包含SQL查询的文件,其中包含多个命名子查询:

WITH first_part AS (
  ...
),
second_part AS (
  ...
)

SELECT * FROM first_part....
我想将
first\u part
second\u part
提取到独立文件中,以便更容易编写测试


当然,我可以简单地将它们提取到单独的文件中,然后编写一些代码,在运行时将所有查询合并成一个查询。但我想知道是否有一些“传统”的方法来实现这一点?

您不会用CTE来实现这一点。您可以使用临时表执行此操作。当然,语法因数据库而异,但典型的语法是:

create temporary table temp_first_part as
    . . . 
等等


然后,您可以使用数据库提供的任何机制返回结果,并将其保存到文件中。

对于CTEs,您不会这样做。您可以使用临时表执行此操作。当然,语法因数据库而异,但典型的语法是:

create temporary table temp_first_part as
    . . . 
等等


然后,您可以使用数据库提供的任何机制返回结果,并将其保存到文件中。

除非您的SQL工具/版本提供了一个可以自动执行此操作的向导,手动分离CTE可能是您在此处的唯一选项。请使用正在使用的数据库标记您的问题。除非您的SQL工具/版本提供了可自动执行此操作的向导,否则手动分离CTE可能是您在此处的唯一选项。请使用正在使用的数据库标记您的问题。