Подтвердить что ты не робот

Как использовать ключевое слово "как" для псевдонима таблицы в Oracle?

Я пытаюсь выполнить этот запрос в 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)
);

Спасибо за любую помощь заранее.

4b9b3361

Ответ 1

Вы можете использовать AS для псевдонимов таблиц на многих серверах SQL (по крайней мере, MsSQL, MySQL, PostrgreSQL), но он всегда является необязательным и на Oracle является незаконным.

Итак, удалите AS:

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

Ответ 2

Опустить AS для псевдонима таблицы в Oracle.

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';

Это даст вам результат без ошибок.