pes*_*chü 1 postgresql temporary-tables
我想使用 select 语句创建一个临时表,该语句使用 WITH 语句(而不是 CREATE TEMPORARY TABLE 的 WITH 语句)中指定的临时视图。
例如类似的东西
WITH a AS (
SELECT 1 foo, 2 bar
), b AS (
SELECT 4 bar, 5 baz
)
CREATE TEMPORARY TABLE foo AS
SELECT * from a JOIN b ON (a.bar=b.bar)
Run Code Online (Sandbox Code Playgroud)
如果我注释掉 CREATE TEMPORARY TABLE 行,这行得通。如何使用SELECT的查询结果创建临时表,而不将临时视图重写为单个查询?
WITH 在 CREATE TABLE 之后
CREATE TEMPORARY TABLE foo
AS
WITH a AS (
SELECT 1 foo, 2 bar
), b AS (
SELECT 4 bar, 5 baz
)
SELECT * from a JOIN b ON (a.bar=b.bar)
Run Code Online (Sandbox Code Playgroud)
请注意,以上将导致“错误:多次指定列“bar””-但我假设您在实际查询中使用了更好的(不同的)列名称。