1. SYS_CONNECT_BY_PATH - 역할루트노드로부터 해당 로우 항목까지의 경로를 반환 2. SYS_CONNECT_BY_PATH - 기본 테이블◈ TEST_TABLE_ONE IDXNAMEID P_LEVEL PP_LEVEL 1테스트1test1 1 2테스트2test2 2 1 3테스트3test3 3 1 4테스트4test4 4 2 5테스트5test5 5 2 3. SYS_CONNECT_BY_PATH - SQL 문장◈ SQL 123456SELECT LEVEL ,LPAD(' ' ,2*(LEVEL-1)) || NAME AS NAME ,SYS_CONNECT_BY_PATH(name,'/') AS PATH FROM TEST_TABLE_ONE START WITH PP_LEVEL IS NULL CONNECT BY PR..
1. CONNECT_BY_ISLEAF - 역할계층형 쿼리에서 해당하는 로우가 자식노드가 있는지 없는지 여부를 체크 자식노드가 있을 경우 0 , 자식노드가 없을 경우 1 2. CONNECT_BY_ISLEAF - 기본 테이블◈ TEST_TABLE_ONE IDXNAMEID P_LEVEL PP_LEVEL 1테스트1test1 1 2테스트2test2 2 1 3테스트3test3 3 1 4테스트4test4 4 2 5테스트5test5 5 2 3. CONNECT_BY_ISLEAF - SQL 문장◈ SQL 123456SELECT LEVEL ,LPAD(' ' ,2*(LEVEL-1)) || NAME AS NAME ,CONNECT_BY_ISLEAF AS LEAF FROM TEST_TABLE_ONE START WITH PP_LEV..
1. CONNECT_BY_ISCYCLE - 역할계층형 쿼리에서 해당하는 로우가 자식노드를 가지고 있는데 다시 부모느드 인지를 찾아주는 함수 중복참조하여 자식노드가 있을 경우 1 , 그렇지 않을 경우 0을 반환 2. CONNECT_BY_ISCYCLE - 기본 테이블◈ TEST_TABLE_ONE IDXNAMEID P_LEVEL PP_LEVEL 1테스트1test1 1 2 2테스트2test2 2 1 3테스트3test3 3 1 4테스트4test4 4 2 5테스트5test5 5 2 3. CONNECT_BY_ISCYCLE - SQL 문장◈ SQL 123456SELECT LEVEL ,LPAD(' ' ,2*(LEVEL-1)) || NAME AS NAME ,CONNECT_BY_ISCYCLE AS CYCLE FROM TES..
1. CONNECT_BY_ROOT - 역할계층형 쿼리에서 최상위 노드를 찾고자 할 경우 2. CONNECT_BY_ROOT - 기본 테이블◈ TEST_TABLE_ONE IDXNAMEID P_LEVEL PP_LEVEL 1테스트1test1 1 2테스트2test2 2 1 3테스트3test3 3 1 4테스트4test4 4 2 5테스트5test5 5 2 3. START WITH ... CONNECT BY - SQL 문장◈ SQL 1234567SELECT LEVEL ,LPAD(' ' ,2*(LEVEL-1)) || NAME AS NAME ,CONNECT_BY_ROOT NAME AS ROOT_NAME FROM TEST_TABLE_ONE WHERE LEVEL>=2 START WITH PP_LEVEL IS NULL CONN..
1. START WITH ... CONNECT BY - 역할오라클에서 지원하는 계층적인 정보를 표현할 수 있게 지원하는 특별한 문장 ◈ 구문형식 START WITH 조건1 .... CONNECT BY 조건2 - START WITH 조건1 : 역할 루트노드를 식별 조건1을 만족하는 모든 로우들은 루트노드가 됨 생략 시 모든 로우들을 루트노드로 간주 조건1에 서브쿼리도 가능 - CONNECT BY 조건2 : 역할 부모와 자식노드들 간의 관계를 명시 조건2에서는 반드시 PRIOR 연산자 포함 - 부모노드의 컬럼을 식별하는데 사용 조건2에는 서브쿼리는 불가능 2. START WITH ... CONNECT BY - 기본 테이블◈ TEST_TABLE_ONE IDXNAMEID P_LEVEL PP_LEVEL 1테스트1..
1. MINUS - 역할테이블에서 조합이 이루어져 데이터를 표현하고자 할 때 공통된 데이터를 제외한 나머지 데이터를 표시 집합에서는 차집합에 해당 2. MINUS - 기본 테이블◈ TEST_TABLE_ONE IDXNAMEID 1테스트1test1 2테스트2test2 3테스트3test3 4테스트4test4 5테스트5test5 ◈ TEST_TABLE_TWO IDXNAMEID 1테스트1test1 2테스트2test2 3테스트3test3 6테스트6test6 7테스트7test7 3. MINUS - SQL 문장◈ SQL 123456789SELECT IDX ,NAME ,ID FROM TEST_TABLE_ONEMINUSSELECT IDX ,NAME ,ID FROM TEST_TABLE_TWO ◈ 결과 테이블 IDX NAME..
1. INTERSECT - 역할 테이블에서 조합이 이루어져 데이터를 표현하고자 할 때 공통된 부분을 표시 집합에서는 교집합에 해당 2. INTERSECT - 기본 테이블◈ TEST_TABLE_ONE IDXNAMEID 1테스트1test1 2테스트2test2 3테스트3test3 4테스트4test4 5테스트5test5 ◈ TEST_TABLE_TWO IDXNAMEID 1테스트1test1 2테스트2test2 3테스트3test3 6테스트6test6 7테스트7test7 3. INTERSECT - SQL 문장◈ SQL 123456789SELECT IDX ,NAME ,ID FROM TEST_TABLE_ONEINTERSECTSELECT IDX ,NAME ,ID FROM TEST_TABLE_TWO ◈ 결과 테이블 IDX N..
1. UNION , UNION ALL - 역할두 개 이상의 테이블에서 조합된 데이터를 표현하고자 할 때 UNION - DISTINCT 역할을 수행하여 중복된 데이터는 하나만 표시 UNION ALL - ALL에서 알수 있듯이 중복된 데이터도 모두 표시 2. UNION , UNION ALL - 기본 테이블◈ TEST_TABLE_ONE IDXNAMEID 1테스트1test1 2테스트2test2 3테스트3test3 4테스트4test4 5테스트5test5 ◈ TEST_TABLE_TWO IDXNAMEID 1테스트1test1 2테스트2test2 3테스트3test3 6테스트6test6 7테스트7test7 3. UNION - SQL 문장◈ SQL 123456789SELECT IDX ,NAME ,ID FROM TEST_TA..
1. ROLLUP,CUBE - 역할ROLLUP - 그룹별 합계 정보를 추가 CUBE - 모든 가능한 조합에 대한 합계 정보를 추가 2. ROLLUP,CUBE - 기본 테이블◈ TEST_TABLE_ONE NAMEAMTDEPT 테스트11000 test_d1테스트21000 test_d1테스트33000 테스트42000 test_d2테스트52000 test_d2 3. ROLLUP - SQL 문장◈ SQL 1234567 SELECT DEPT ,NAME ,COUNT(*) AS CNT ,SUM(AMT) AS SUM_AMT FROM TEST_TABLE_ONE GROUP BY ROLLUP(DEPT,NAME) ORDER BY DEPT ◈ 결과 테이블 DEPT NAMECNT SUM_AMT test_d1테스트11 1000 te..
1. HAVING 절 - 역할GROUP BY절에 사용되어 집계 함수를 사용한 조건을 명시하는 절 2. HAVING 절 - 기본 테이블◈ TEST_TABLE_ONE NAMEAMTDEPT 테스트11000 test_d1테스트21000 test_d1테스트33000 테스트42000 test_d2테스트52000 test_d2 3. HAVING 절 - SQL 문장1◈ SQL 1SELECT DEPT,COUNT(*) FROM TEST_TABLE_ONE WHERE COUNT(*)>1 GROUP BY DEPT ◈ 결과 ORA-00934: group function is not allowed here ◈ 설명 DEPT에 해당하는 사람 수를 구하는데 2명 이상으로 된 부서만 표시하고 싶어서 위와 같이 작성했는데 WHERE 절에..
- Total
- Today
- Yesterday