by 토로 [SQL Query] Inline View WHERE JOIN ANSI [2020.12.23 02:29:48]
안녕하세요.
인라인 뷰를 공부하다 의문점이 들어 질문드립니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | SELECT EMP_ID, EMP_NAME, DEPT_TITLE, JOB_NAME, HIRE_DATE, (SALARY*(NVL(BONUS,0)+1))*12 보너스연봉, RANK() OVER( ORDER BY ( (SALARY)*(NVL(BONUS,0)+1))*12 DESC ) 순위 FROM EMPLOYEE JOIN DEPARTMENT ON (DEPT_CODE = DEPT_ID) JOIN JOB USING(JOB_CODE) <span style= "background-color:#ffff00" > WHERE 순위 <6;</span> --Inline View SELECT * FROM ( SELECT EMP_ID, EMP_NAME, DEPT_TITLE, JOB_NAME, HIRE_DATE, ((SALARY)*(NVL(BONUS,0)+1))*12 보너스연봉, RANK() OVER( ORDER BY ((SALARY)*(NVL(BONUS,0)+1))*12 DESC ) 순위 FROM EMPLOYEE JOIN DEPARTMENT ON (DEPT_CODE = DEPT_ID) JOIN JOB USING(JOB_CODE) ) WHERE 순위 <6; |
JOIN 뒤에도 WHERE을 사용하여 순위를 조회해볼까 했는데,
생각과는 달리 오류가 뜨더라고요...! ORA-00904: "순위": invalid identifier
왜 굳이 FROM구문에 인라인 뷰를 작성하여 WHERE을 검사하는 걸까요? 둘의 차이를 알고 싶습니다.