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

标签 sql oracle table-alias

我正在尝试在Oracle SQL Developer中执行以下查询:

SELECT G.Guest_ID, G.First_Name, G.Last_Name
FROM Guest AS G
  JOIN Stay AS S ON G.Guest_ID = S.Guest_ID
WHERE G.City = 'Miami' AND S.Room = '222';


但是,出现以下错误:

ORA-00933: SQL command not properly ended
00933. 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)
);


感谢您的任何帮助。

最佳答案

您可以在许多SQL服务器(至少MsSQL,MySQL,PostrgreSQL)上使用AS进行表别名,但是它始终是可选的,而在Oracle上则是非法的。

因此,删除AS

SELECT G.Guest_ID, G.First_Name, G.Last_Name
FROM Guest G

关于sql - 如何使用'as'关键字为Oracle中的表添加别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21145028/

相关文章:

sql - 从邻接列表中选择并从下到上排序

php - 显示密码不是 md5 格式的行

mysql - sql 中的重复表并添加新列

sql - 如何根据列值创建重复行

Yii2 不是唯一的表/别名 : 'user'

sql - 选择带有表别名的 SQL View Slow

sql - 嵌套 JOIN 不起作用

php - 获取mysql_fetch_array表结果中的换行符

sql - Oracle - 来自单个列的唯一值,但返回其他列

sql - 是否可以在Oracle 11g SQL中为子查询赋予别名?