如何根据另一个表的属性创建一个SQL表?

时间:2014-04-15 08:33:11

标签: sql oracle

我有一个名为SCUBA_DIVER的SQL表。它包含属性ID(潜水员认证编号),CDATE(认证日期)和NAME。

我需要创建一个基于此表的新表,其中包含两列ID1和ID2。对于每一行,ID1潜水员总是比ID2潜水员更晚认证。你会如何设置这个表?我想为每位潜水员准备好所有组合。

到目前为止,我有:

SELECT SCUBA_DIVER.ID AS ID1, SCUBA_DIVER.ID AS ID2
FROM SCUBA_DIVER AS SD1, SCUBA_DIVER AS SD2
WHERE SD1.CDATE > SD2.CDATE;

但这在Oracle中给我一个错误,我无法弄清楚原因。

1 个答案:

答案 0 :(得分:0)

删除FROM子句中的AS关键字,并使用别名而不是表名。 您可以使用CREATE TABLE AS SELECT语句创建新表:

CREATE TABLE <table name> AS
SELECT SD1.ID AS ID1, SD2.ID AS ID2
FROM SCUBA_DIVER SD1, SCUBA_DIVER SD2
WHERE SD1.CDATE > SD2.CDATE;