반응형
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 |
댓글