Oracle(4)
-
[Oracle] Filter 오퍼레이션
실행계획을 보면 Filter 연산이 발생하는 경우가 있다. 이는 반복수행하는 작업에서 발생하며 대표적으로 In, Exsists에 서브쿼리를 썼을 때 발생한다고 공부하였다. 하지만, 단순 조건절을 이용한 데이터 추출을 할 때도 Filter 오퍼레이션이 발생하였다. 혼란을 겪고 정리하는 Filter 오퍼레이션에 대한 설명. * FILTER 연산자가 사용되는 상황 1. 조건문이 있는 쿼리 : WHERE 절이나 HAVING 절에서 조건을 지정한 경우, Oracle은 이 조건을 적용하여 데이터를 필터링합니다. 2. 서브쿼리 : 서브쿼리에서 조건을 ㅈ거용하여 필터링하는 경우에도 필터 연산자가 사용됩니다. 3. 조인 : 여러 테이블 간의 조인 시 조건을 만족하는 행만을 선택할 때도 필터 연산자가 사용됩니다. * FI..
2024.07.30 -
[ORACLE] 파티션 테이블 조회
-- 파티션명 조회 SELECT * FROM ALL_TAB_PARTITIONS WHERE TABLE_NAME = '테이블명' ; -- 파티션 키 컬럼 조회 SELECT * FROM ALL_PART_KEY_COLUMNS WHERE NAME = '테이블명' ; -- 파티션 테이블 조회하기 SELECT * FROM 테이블명 PARTITION (파티션명) WHERE 파티션키컬럼 BETWEEN A AND B ;
2024.06.21 -
[ORACLE] GROUP BY 1
- SUM을 수행하다가 발견. 예시) SELECT SUM(NUM) OVER(PARTITION BY 1) SUM_NUM FROM ( SELECT 'A' CODE, 1 NUM FROM DUAL UNION ALL SELECT 'B' CODE, 2 NUM FROM DUAL UION ALL SELECT 'C' CODE, 0 NUM FROM DUAL)* 예상 결과 : 첫번째 컬럼 값을 그룹별로 나눠 SUM 수행. * 실제 결과 - 전체 행을 SUM 한 결과로 출력됨. - 첫번째 컬럼의 데이터 값으로 그룹화를 하는 것이 아닌, '1'을 기준으로 그룹화 함을 알 수 있다. - PARTITION BY 2로 바꾸어도 같은 값임을 확인할 수 있을 것이다. >> 예상 결과대로 수행하기 위한 수정 쿼리SELECT SUM(NUM..
2024.05.03 -
[ORACLE] 문자열 반복
[오라클] LPAD(문자열, 총길이, 채울문자) : 특정 문자를 채워 길이 수를 맞출 때 EX) RPAD('123456-7', 11, '*') -> RESULT : 123456-7****** [ORACLE] SELECT LPAD('-', LEGNTH(STR),'-') FROM DUAL [MySQL] SELECT REPEAT('-',LENGTH(STR)) FROM DUAL
2023.03.10