为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用'as'关键字为Oracle中的表别名?

如何使用'as'关键字为Oracle中的表别名?

慕田峪4524236 2019-09-06 16:28:03
我正在尝试在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


查看完整回答
反对 回复 2019-09-06
?
慕尼黑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';

这将为您输出没有错误。


查看完整回答
反对 回复 2019-09-06
  • 2 回答
  • 0 关注
  • 1367 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信