문제
다음 SQL 중 Oracle 기준으로 결과가 다른 것은?
| COL1 | COL2 | COL3 |
|---|---|---|
| 1 | 2 | A |
| 2 | 3 | B |
| 3 | 2 | C |
| 4 | 3 | D |
① SELECT COL1, COL2, COL3 FROM TAB WHERE COL1 < 5 ② SELECT T.* FROM TAB AS T ③ SELECT * FROM TAB ④ SELECT * FROM TAB WHERE COL2 IN (2, 3)
정답
2번
해설
정답: 2. Oracle에서는 FROM 절의 테이블 별칭에 AS 키워드를 사용할 수 없으므로 SELECT T.* FROM TAB AS T는 오류가 발생한다.
오답 풀이
- 1번: COL1이 모두 5보다 작으므로 전체 행이 조회된다.
- 2번: Oracle 기준 테이블 별칭에 AS를 사용해 문법 오류가 발생한다.
- 3번: 전체 행이 조회된다.
- 4번: COL2가 2 또는 3인 전체 행이 조회된다.
보충 개념
Oracle에서는 컬럼 별칭에는 AS를 사용할 수 있지만, 테이블 별칭에는 일반적으로 AS를 쓰지 않는다. FROM TAB T처럼 작성한다.