Overview

얍얍얍얍 얍얍얍

Top-N 쿼리

Top N까지의 데이터를 추출한다.

셀프 조인(Self Join)

나 자신과의 조인이다. FROM 절에 같은 테이블이 두 번 이상 등장하기 때문에 혼란을 막기 위해 ALIAS를 반드시 표기해주어야 한다.

SELECT A.CATEGORY_TYPE,
			 A.CATEGORY_NAME,
			 B.CATEGORY_TYPE,
			 B.CATEGORY_NAME,
			 C.CATEGORY_TYPE,
			 C.CATEGORY_NAME
	FROM CATEGORY A,
			 CATEGORY B,
			 CATEGORY C
 WHERE A.CATEGORY_NAME = B.PARENT_CATEGORY
	 AND B.CATEGORY_NAME = C.PARENT_CATEGORY;

계층 쿼리

테이블에 계층 구조를 이루는 컬럼이 존재할 경우 계층 쿼리를 이용해서 데이터를 출력할 수 있다.

SELECT LEVEL,
			 CATEGORY_TYPE AS TYPE,
			 CATEGORY_NAME AS NAME,
			 PARENT_CATEGORY AS PARENT,
			 SYS_CONNECT_BY_PATH('[' || CATEGORY_TYPE || ']' || CATEGORY_NAME, '-') AS PATH,
			 CONNECT_BY_ROOT CATEGORY_NAME AS ROOT_INFO,
			 CONNECT_BY_ISLEAF AS LEAF_INFO
	FROM CATEGORY
 START WITH PARENT_CATEGORY IS NULL
 CONNECT BY PRIOR CATEGORY_NAME = PARENT_CATEGORY
 ORDER SIBLINGS BY NAME;