Как использовать ключевое слово "as" для псевдонима таблицы в 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)
);
Спасибо за любую помощь заранее.
2 ответа
Решение
Ты можешь использовать AS
для псевдонимов таблиц на многих серверах SQL (по крайней мере, MsSQL, MySQL, PostrgreSQL), но это всегда необязательно, а в Oracle это незаконно.
Так что удалите AS
:
SELECT G.Guest_ID, G.First_Name, G.Last_Name
FROM Guest G
Опустить 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';
Это даст вам вывод без ошибок.