SELECT INTO

从一个查询的结果定义一个新表。

概要

  1. [ WITH with_query [, ...] ]
  2. SELECT [ALL | DISTINCT [ON ( expression [, ...] )]]
  3. * | expression [AS output_name] [, ...]
  4. INTO [TEMPORARY | TEMP] [TABLE] new_table
  5. [FROM from_item [, ...]]
  6. [WHERE condition]
  7. [GROUP BY expression [, ...]]
  8. [HAVING condition [, ...]]
  9. [{UNION | INTERSECT | EXCEPT} [ALL] select]
  10. [ORDER BY expression [ASC | DESC | USING operator] [NULLS {FIRST | LAST}] [, ...]]
  11. [LIMIT {count | ALL}]
  12. [OFFSET start]
  13. [FOR {UPDATE | SHARE} [OF table_name [, ...]] [NOWAIT]
  14. [...]]

描述

SELECT INTO创建一个新表并且用一个查询计算得到的数据填充它。这些数据不会像普通的SELECT那样被返回给客户端。新表的列具有和SELECT的输出列相关的名称和数据类型。

参数

SELECT INTO主要的参数同 SELECT是一样的。

TEMPORARY

TEMP

如果被指定,该表被创建为一个临时表。

new_table

要创建的表的名字(可以是方案限定的)。

示例

创建一个新表films_recent由表films的最近项构成:

  1. SELECT * INTO films_recent FROM films WHERE date_prod >=
  2. '2016-01-01';

兼容性

SQL标准使用SELECT INTO 表示把值选择 到一个宿主程序的标量变量中,而不是创建一个新表。Greenplum数据库使用SELECT INTO来表示创建是由历史原因的。 最好在新的应用中使用CREATE TABLE AS来实现该目的。

另见

SELECT, CREATE TABLE AS

上级主题: SQL命令参考