ORDER BY 컬럼명이 가리키는 위치는 실제 컬럼명일까? alias 일까?
- 먼저 SELECT 절 컬럼명(alias)을 찾아보고 없으면 실제 컬럼을 찾아간다
테이블 데이터 조회
SELECT * FROM sk.t1 ;
C1 C2
---------- ----------
1 5
2 4
3 3
4 2
5 1
alias 명으로 정렬
alias (c1 -> c2, c2 ->b) 라고 선언 후 order by c2 실행
SELECT c1 c2 , c2 b
FROM sk.t1
ORDER BY c2
;
C2 B
---------- ----------
1 5
2 4
3 3
4 2
5 1
반응형
실제 컬럼명 정렬
alias (c1 -> a, c2 ->b) 라고 선언 후 order by c2 실행
SELECT c1 a, c2 b
FROM sk.t1
ORDER BY c2
;
A B
---------- ----------
5 1
4 2
3 3
2 4
1 5
에러발생
alias 가 중복될 때 에러발생(c1 as c2, c2 as c2 이므로)
SELECT c1 as c2 , c2
FROM sk.t1
ORDER BY c2
;
ORDER BY c2
*
ERROR at line 3:
ORA-00960: ambiguous column naming in select list
'DBMS > SQL튜닝' 카테고리의 다른 글
oracle hint 적용 안되는 경우 확인 및 해결 법 (0) | 2023.07.07 |
---|---|
oracle hint 위치별 적용여부 테스트 (0) | 2023.07.04 |
펑션 위치별 실행 횟 수 (0) | 2023.07.02 |
INLIST ITERATOR 성능개선(where 절 in 조건) (0) | 2023.06.29 |
스칼라서브쿼리 실행계획 순서 및 실행통계 (0) | 2023.06.28 |
댓글