반응형 Develops/SQL16 [ORACLE] LISTAGG 집계함수 (여러 행을 하나의 값으로 합치기) 오라클에서 여러 행의 컬럼 값을 하나로 합쳐주는 기능을 지원하는 함수는 버전별로 상이하다.XMLAGG : 오라클 9i 이하 WM_CONCAT : 오라클 10g ~ 11g R1 LISTAGG : 오라클 11g R2 ~ ( DISTINCT 를 사용한 중복제거 불가 / 정규식 함수 사용 )LISTAGG : 오라클 19g ~ ( DISTINCT 를 사용한 중복제거 가능 ) LISTAGG( ) 함수는 그룹 함수이기 때문에 GROUP BY 또는 PARTITION BY 절과 함께 사용해야 한다. 구문 예시LISTAGG([합칠 컬럼명], [구분자]) WITHIN GROUP(ORDER BY [정렬 컬럼명]) PARTITION BY 절을 사용하여 컬럼 합치기SELECT ename , job , LIST.. 2024. 3. 24. [ORACLE] LPAD, RPAD 함수 (지정한 길이만큼 문자('0', 공백) 채우기) 문자열 데이터를 제어하다 보면 SUBSTR, REPLACE 등의 함수와 함께 많이 쓰이는 함수로 주로 문자로 된 숫자의 앞자리에 '0'을 넣어 자릿수를 맞출 때 쓰이거나 ' '(공백)을 앞/뒤로 넣어 자릿수를 맞출 때 주로 사용하는 함수이다. LPAD 함수지정한 길이만큼 왼쪽부터 특정문자로 채워준다.LPAD("값", "총 문자길이", "채움문자") RPAD 함수지정한 길이만큼 오른쪽부터 특정문자로 채워준다.RPAD("값", "총 문자길이", "채움문자") [참고]https://haenny.tistory.com/124https://gent.tistory.com/190 2024. 3. 24. [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. [ORACLE] 전역 임시 테이블 (Global Temporary Table) ORACLE 전역 임시 테이블 (Global Temporary Table) 기능에 대해 살펴보자. [ 정의 ] 전역 임시 테이블 (Global Temporary Table)의 경우 영구적인 정보가 아닌 일시적인 중간 데이터가 필요할 때 사용한다. CREATE GLOBAL TEMPORARY TABLE TEMP_TABLENAME ( ID VARCHAR2 (20), NAME VARCHAR2 (20) ) ON COMMIT [PRESERVE/DELETE] ROWS [ 특징 ] 테이블 정의는 모든 세션에서 볼 수 있으나, DATA는 세션 별로 독립적 (특정 세션 임시 테이블 DATA는 다른 SESSION에서 접근 불가) 옵션(PRESERVE/DELETE)에 따라 데이터 유지기간이 다르다. ON COMMIT PRES.. 2024. 3. 9. 이전 1 2 다음 반응형