Sql 创建表而不创建表

Sql 创建表而不创建表,sql,postgresql,Sql,Postgresql,我有一个关于在要对其运行查询的数据库上创建表的约束。数据库系统是Postgres 我可以做到以下几点: testdb=# select 'john' as first, 'doe' as last; first | last -------+------ john | doe 但我想做的是: first | last -------+------ john | doe jane | doe

我有一个关于在要对其运行查询的数据库上创建表的约束。数据库系统是Postgres

我可以做到以下几点:

testdb=# select 'john' as first, 'doe' as last;                                          
 first | last 
-------+------
 john  | doe
但我想做的是:

 first | last 
-------+------
 john  | doe
 jane  | doe
因此,我可以生成第一行,但不能生成下一行

或者,如果与数据库的会话丢失,是否有方法确保删除临时表

干杯


亚当,这就是你要找的吗

WITH testdb(first,last) AS (VALUES ('john','doe'), ('jane', 'doe')) 
SELECT * FROM testdb;

WITH提供了一种编写辅助语句的方法,以便在更大的应用程序中使用 查询这些语句通常被称为公共表 表达式或CTE可被视为定义临时表 只存在一个查询。一个带有 子句可以是SELECT、INSERT、UPDATE或DELETE;以及WITH子句 它本身附加到主语句,主语句也可以是SELECT, 插入、更新或删除

最短(最紧凑)的表单是行构造函数:

select * 
from ( 
   values 
      ('John', 'Doe'), 
      ('Jane', 'Doe'), 
      ('Arthur', 'Dent')
) as t (first, last)

临时表会在会话结束时自动删除。这个评论系统太可怕了。这正是我想要的。