我有一个当前有效的查询,定义为:
SELECT LIST_OF_SITES.SITE,
TO_CHAR(SITE_VISIT.DATE_ - LIST_OF_ISLANDS.TIMEZONE/24, 'DD-MON-YY HH24:MI') DATE_,
LIST_OF_SITES.LATITUDE,
LIST_OF_SITES.LONGITUDE,
LIST_OF_SITES.REEF_ZONE,
LIST_OF_SITES.DEPTH_BIN
FROM GISDAT.LIST_OF_SITES
LEFT JOIN GISDAT.SITE_VISIT
ON LIST_OF_SITES.SITE = SITE_VISIT.SITE
INNER JOIN GISDAT.LIST_OF_ISLANDS
ON LIST_OF_ISLANDS.ISLAND = LIST_OF_SITES.ISLAND WHERE LIST_OF_SITES.SITE = 'TUT-229';
我要添加的是另一个选择SITE_VISIT.HABITAT_CODE
的select子句但是
如果我在LIST_OF_SITES.DEPTH_BIN
之后立即添加它,则会产生错误:
ORA-00904: "SITE_VISIT"."HABITAT_CODE": invalid identifier.
其他一些可能有用的信息是我可以访问所有提到的表格,
并且还有一个名为LIST_OF_HABITATS
的表格,其中包含HABITAT_CODE
列,我不确定是否需要以某种方式与SITE_VISIT.HABITAT_COD
E联接才能使其正常工作。
答案 0 :(得分:0)
SELECT LIST_OF_SITES.SITE, TO_CHAR(SITE_VISIT.DATE_ - LIST_OF_ISLANDS.TIMEZONE/24, 'DD-MON-YY HH24:MI') DATE_, LIST_OF_SITES.LATITUDE, LIST_OF_SITES.LONGITUDE, LIST_OF_SITES.REEF_ZONE, LIST_OF_SITES.DEPTH_BIN, -- added a comma here SITE_VISIT.HABITAT_CODE -- added habitat_code FROM GISDAT.LIST_OF_SITES LEFT JOIN GISDAT.SITE_VISIT ON LIST_OF_SITES.SITE = SITE_VISIT.SITE INNER JOIN GISDAT.LIST_OF_ISLANDS ON LIST_OF_ISLANDS.ISLAND = LIST_OF_SITES.ISLAND WHERE LIST_OF_SITES.SITE = 'TUT-229';
如果仍然出现ORA-00904 invalid identifier
错误,请确保SITE_VISIT
没有HABITAT_CODE
列。
在这种情况下,您需要加入适当的表,并投影该表的列。