본문 바로가기
반응형

query2

[ORACLE] NVL, NVL2, NULLIF, COALESCE 함수 (NULL 값 처리, 치환 등) 쿼리를 작성하다 보면 NULL 값을 그대로 사용할 수 없는 경우 NULL 값에 대한 처리를 많이 하는 편이다.NULL 값을 체크하거나 치환하는 등의 처리를 위해서는 알아두면 좋을 것 같아 정리해본다.   NVL 구문 예시NVL(대상 컬럼, 대상 컬럼이 NULL 때의 값)NVL(COLUMN, 'COLUMN IS NULL') NVL2 구문 예시NVL2(대상 컬럼, 대상 컬럼이 NULL이 아닌 경우의 값, 대상 컬럼이 NULL일 경우의 값)NVL2(COLUMN, 'COLUMN IS NOT NULL', 'COLUMN IS NULL') NULLIF 구문 예시NULLIF(대상 컬럼, 비교할 컬럼)NULLIF(COLUMN1, COLUMN2) > COLUMN1와 COLUMN2의 값이 같다면 NULL 반환 > COLUM.. 2024. 8. 3.
[ORACLE] 서브쿼리 2 DEPTH 참조 (SubQuery 2 Depth Issue) 오라클 11g 이하 버전에서는 서브쿼리에서 서브쿼리를 사용할 경우 메인 컬럼을 참조하지 못한다. ("ORA-00904: 부적합한 식별자" 오류 발생) 11g 이하 버전이 이제는 많이 쓰이진 않겠지만 사용하는 오라클 버전이 낮거나 고려해야 하는 사유가 있는 경우 이중 서브쿼리에서 메인컬럼을 참조하지 않는 방안으로 쿼리를 개선할 필요가 있다. 오라클 12c 이상 예시 SELECT a.empno , a.ename , a.job , a.sal , (SELECT ename FROM (SELECT aa.ename FROM emp aa WHERE aa.job = a.job ORDER BY aa.sal DESC) WHERE ROWNUM = 1) AS max_sal_ename FROM emp a WHERE a.job I.. 2024. 3. 24.
반응형