본문 바로가기
SQL

SQL 활용 기타 기법

by 피갓자 2025. 3. 9.

SQL 활용 기타 기법
SQL 활용 기타 기법

Top N 쿼리

ROWNUM

현재 저장된 데이터를 그대로 두면서 각 행에 순차적인 번호 부여

테이블의 첫 행부터 차례로 순회하면서 값을 반환하기 때문에 중간을 건너뛰고 값을 가져올 수 없음

윈도우 함수의 순위 함수

RANK : 순위를 매기면서 같은 순위가 존재하면 존재하는 수만큼 다음 순서를 건너뛴 상위 N 순위까지 출력

DENSE_RANK : 순위를 매기면서 같은 순위가 존재해도 다음 순위를 건너뛰지 않고, 이어서 매긴 상위 N 순위까지 출력

ROW_NUMBER : 순위를 매기면서 동일한 값이라도 각기 다른 순위를 부여한 상위 N 순위까지 출력

계층형 질의

테이블에 계층 구조를 이루는 컬럼이 존재할 경우 계층형 질의를 이용해서 데이터를 출력할 수 있음

LEVEL : 전체 계층 구조에서 현재의 레벨 또는 깊이인 DEPTH 반환. 루트 노드가 1이 되며 한 레벨 내려갈 때마다 1씩 증가

SYS_CONNECT_BY_PATH (컬럼, 구분자) : 루트 노드로부터 현재 노드까지의 경로 출력. 해당 경로는 ‘/’로 구분

START WIHT : 경로가 시작되는 루트 노드를 생성해주는 절

CONNECT BY : 루트로부터 자식 노드를 생성해주는 절. 조건에 만족하는 데이터가 없을 때까지 노드 생성

CONNECT_BY_ROOT 컬럼 : 루트 노드의 주어진 컬럼값 반환. 루트 노드의 특정 컬럼값을 조회하고 싶을 때 사용

COONNCT_BY_ISLEAF : 현재 노드가 말단 노드(Leaf Node)이면 1을 그 외에는 0을 반환

PRIOR : 바로 상위의 부모 노드 반환. 부모-자식 관계에서 부모 값을 참조할 때 사용

  • 순방향 전개 : CONNECT BY PRIOR 자식 = 부모
  • 역방향 전개 : CONNECT BY PRIOR 부모 = 자식

NOCYCLE : 사이클 발생 이후의 데이터를 전개하지 않음으로써 무한 루프 방지

ORDER SIBLINGS BY : ORDER BY 절이 전체를 정렬하는 것과 달리, 같은 레벨의 형제(Sibling) 노드끼리 정렬. 형제 노드 간의 정렬 순서를 지정할 때 사용

PIVOT, UNPIVOT 절

PIVOT

행을 열로 바꿈. 지정된 컬럼의 각 행 속성값이 새로운 컬럼 헤더가 되고 이에 맞게 전체 속성값들 재배치

UNPIVOT

PIVOT과 반대로 열을 행으로 바꿈. 컬럼 헤더들이 한 컬럼의 각 행 속성값이 되고 이에 맞게 전체 속성값들 재배치

정규 표현식

메타 문자

문자 그 자신이 가진 의미가 아니라 다른 의미로 사용되는 문자

리터럴 문자

문자 그 자체가 가진 의미 그대로 사용되는 문자로, 정규 표현식에서 패턴 매칭을 수행할 때 처리되는 최소 단위

'SQL' 카테고리의 다른 글

관리 구문 DDL과 DCL  (0) 2025.03.11
관리 구문 DML과 TCL  (0) 2025.03.10
SQL 활용 그룹 함수와 윈도우 함수  (0) 2025.03.08
SQL 활용 서브쿼리와 집합 연산자  (0) 2025.03.07
SQL 기본 SELECT 문 조건 절  (0) 2025.03.06