我正在尝试在Oracle SQL Developer中执行此查询:SELECT G.Guest_ID, G.First_Name, G.Last_NameFROM Guest AS G JOIN Stay AS S ON G.Guest_ID = S.Guest_IDWHERE G.City = 'Miami' AND S.Room = '222';但是,我收到以下错误:ORA-00933: SQL command not properly ended00933. 00000 - "SQL command not properly ended"*Cause:*Action:Error at Line: 2 Column: 12我在第2行看不到任何问题,错误不是很具描述性。它似乎与as关键字有关。如果我删除它,它工作正常。但是,我希望我的查询非常详细。因此,我必须找到一种方法来解决问题,而无需删除as关键字。这是涉及的表的结构:CREATE TABLE GUEST( GUEST_ID NUMBER NOT NULL, LAST_NAME VARCHAR2(50 BYTE), FIRST_NAME VARCHAR2(50 BYTE), CITY VARCHAR2(50 BYTE), LOYALTY_NUMBER VARCHAR2(10 BYTE) );CREATE TABLE STAY( STAY_ID NUMBER NOT NULL, GUEST_ID NUMBER NOT NULL, HOTEL_ID NUMBER NOT NULL, START_DATE DATE, NUMBER_DAYS NUMBER, ROOM VARCHAR2(10 BYTE));在此先感谢您的帮助。
2 回答
一只甜甜圈
TA贡献1836条经验 获得超5个赞
您可以AS在许多SQL服务器(至少是MsSQL,MySQL,PostrgreSQL)上使用表别名,但它始终是可选的,在Oracle上它是非法的。
所以删除AS:
SELECT G.Guest_ID, G.First_Name, G.Last_Name
FROM Guest G
慕尼黑5688855
TA贡献1848条经验 获得超2个赞
AS在Oracle中省略for表别名。
SELECT G.Guest_ID, G.First_Name, G.Last_Name
FROM Guest G
JOIN Stay S ON G.Guest_ID = S.Guest_ID
WHERE G.City = 'Miami' AND S.Room = '222';
这将为您输出没有错误。
添加回答
举报
0/150
提交
取消