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

Extract named sub-queries into separate files

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

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

SELECT * FROM first_part....

我想将 first_partsecond_part 提取到独立文件中,以便更容易编写测试。

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

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

create temporary table temp_first_part as
    . . . 

以此类推

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