Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何基于另一个表的属性创建SQL表?_Sql_Oracle - Fatal编程技术网

如何基于另一个表的属性创建SQL表?

如何基于另一个表的属性创建SQL表?,sql,oracle,Sql,Oracle,我有一个SQL表,名为SCUBA_DIVER。它包含属性ID(潜水员认证号)、CDATE(认证日期)和名称 我需要在此基础上创建一个新表,其中包含两列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 S

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

我需要在此基础上创建一个新表,其中包含两列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中给了我一个错误,我不知道为什么。

在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; 
将表创建为
选择SD1.ID作为ID1,选择SD2.ID作为ID2
来自潜水潜水员SD1,潜水潜水员SD2
其中SD1.CDATE>SD2.CDATE;