[英]SQL how to create and import only specific columns from table A to a new table, table B
[英]Create a new table from existing table with specific columns and a sequence number (Oracle SQL)
我试图找出如何从现有表中在Oracle SQL中创建表。 我只想使用某些列,并且想在表中添加一个序列号。
原始表是通过以下方式创建的:
CREATE TABLE EMPLOYEE
(
FNAME VARCHAR2(15) NOT NULL,
MINIT CHAR,
LNAME VARCHAR2(15) NOT NULL,
SSN CHAR(9) NOT NULL,
BDATE DATE,
ADDRESS VARCHAR2(30),
SEX CHAR,
SALARY NUMBER(10,2),
SUPER_SSN CHAR(9),
DNO NUMBER NOT NULL,
CONSTRAINT EMPPK PRIMARY KEY (SSN) DISABLE,
CONSTRAINT EMPSUPERFK FOREIGN KEY (SUPER_SSN) REFERENCES EMPLOYEE(SSN) DISABLE
);
我想使用FNAME,LNAME,SSN和BDATE列。 我还想添加一个新列EMP_NUM,它是一个从1000开始的序列号。
我正在尝试:
CREATE
TABLE NEW_EMP
(EMP_NUM NUMBER)
AS
SELECT SSN, FNAME, LNAME, BDATE
FROM EMPLOYEE
但是不断出现错误。 每当我认为自己掌握了它时,都会出错。 任何帮助表示赞赏。
谢谢
您可以执行以下操作:
CREATE TABLE NEW_EMP AS
SELECT ROW_NUMBER() OVER (ORDER BY EMPPK) + 999 as EMP_NUM,
SSN, FNAME, LNAME, BDATE
FROM EMPLOYEE;
不过,我会小心谨慎。 您的原始表有一个主键,因此我认为应该随处随行。 另外,我看不到这种桌子有什么用。 您始终可以在需要时轻松生成它,例如,通过在查询中使用CTE。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.