【问题标题】:SQL: Create new table from old [closed]SQL:从旧表创建新表[关闭]
【发布时间】:2017-02-04 17:45:44
【问题描述】:

我正在尝试使用现有表中的选择性列创建一个新表。我使用了以下查询,

create table New 
AS (select UnitID,Institution,State,MSA from Old);

但我得到的错误是,

关键字“as”附近的语法不正确。

如果我删除那些 ()-括号,则表示 ()-括号应该在 AS 附近。

任何建议都会有所帮助!

【问题讨论】:

  • NewOld都是保留字,需要用"Old""New"分隔。
  • @a_horse_with_no_name,自 ISO/ANSI SQL-1999 以来,旧字和新字都是保留字。
  • 您使用的是哪个 DBMS?
  • 仅供参考:您尝试使用此 SQL 的方式期望在括号之间创建表列的定义,而不是从另一个表读取数据的 SQL 语句。所以这只是一个语法错误。下面的答案(使用 SELECT...INTO)可以解决问题。这可行,但首选方法是创建一个新表并将数据复制到其中。这将使您对发生的事情有更多的控制权。

标签: sql


【解决方案1】:

从旧表创建新表的基本语法如下:

CREATE TABLE NEW_TABLE_NAME AS
SELECT [ column1, column2...columnN ]
FROM OLD_TABLE_NAME
[ WHERE ]

将 EMPLOYEE_DETAILS 视为新表名,将 EMPLOYEE 视为旧表名

示例代码:

CREATE TABLE EMPLOYEE_DETAILS AS
 SELECT ID, SALARY
   FROM EMPLOYEE;

【讨论】:

    猜你喜欢
    • 2017-10-17
    • 2020-01-25
    • 1970-01-01
    • 1970-01-01
    • 2012-09-04
    • 1970-01-01
    • 2015-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多