我有一个名为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中给我一个错误,我无法弄清楚原因。
答案 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;