문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
|
기술문서:레퍼런스:쿼리:응용:recursive_query [2025/08/11 15:20] carlito76 |
기술문서:레퍼런스:쿼리:응용:recursive_query [2025/11/27 12:05] (현재) carlito76 |
||
|---|---|---|---|
| 줄 10: | 줄 10: | ||
| </ | </ | ||
| - | ^ 물리명 | + | ===== 테이블 명세 ===== |
| - | | 코드ID | cd_id | 문자형 | PK | | + | ^ 물리명 |
| - | | 코드명 | cd_nm | 문자형 | | | + | | 코드ID | cd_id | 문자형 |
| - | | 부모 코드ID | parent_cd_id | 문자형 | | | + | | 코드명 | cd_nm | 문자형 |
| - | | 정렬 순서 | sort_order | 숫자형 | | | + | | 부모 코드ID | parent_cd_id | 문자형 |
| + | | 정렬 순서 | sort_order | 숫자형 | ||
| + | ===== SQL 스크립트 ===== | ||
| <sxh sql; gutter: true; title: DDL;> | <sxh sql; gutter: true; title: DDL;> | ||
| CREATE TABLE ex_recursive ( | CREATE TABLE ex_recursive ( | ||
| 줄 51: | 줄 53: | ||
| ===== MySQL/ | ===== MySQL/ | ||
| <sxh sql; gutter: true;> | <sxh sql; gutter: true;> | ||
| - | -- MySQL 8.0 이상/ | + | /* |
| + | MySQL 8.0.1 이상/ | ||
| + | */ | ||
| WITH RECURSIVE tree (cd_id, cd_nm, parent_cd_id, | WITH RECURSIVE tree (cd_id, cd_nm, parent_cd_id, | ||
| SELECT | SELECT | ||
| 줄 81: | 줄 85: | ||
| ex_recursive a | ex_recursive a | ||
| INNER JOIN tree b | INNER JOIN tree b | ||
| - | ON a.parent_cd_id = b.cd_id | + | ON b.cd_id |
| ) | ) | ||
| SELECT | SELECT | ||
| 줄 94: | 줄 98: | ||
| ===== MSSQL ===== | ===== MSSQL ===== | ||
| <sxh sql; gutter: true;> | <sxh sql; gutter: true;> | ||
| - | -- MSSQL 2005 이상 | + | /* |
| + | MSSQL 2005 이상 | ||
| + | */ | ||
| WITH tree (cd_id, cd_nm, parent_cd_id, | WITH tree (cd_id, cd_nm, parent_cd_id, | ||
| SELECT | SELECT | ||
| 줄 124: | 줄 130: | ||
| ex_recursive a | ex_recursive a | ||
| INNER JOIN tree b | INNER JOIN tree b | ||
| - | ON a.parent_cd_id = b.cd_id | + | ON b.cd_id |
| ) | ) | ||
| SELECT | SELECT | ||
| 줄 136: | 줄 142: | ||
| ===== Oracle/ | ===== Oracle/ | ||
| - | <sxh sql; gutter: true; highlight: [15, 88];> | + | <sxh sql; gutter: true; highlight: [16, 92];> |
| - | -- Oracle 9i 이상 | + | /* |
| - | -- Tibero 3 이상 | + | Oracle 9i 이상/Tibero 3 이상 |
| + | */ | ||
| SELECT | SELECT | ||
| cd_id | cd_id | ||
| 줄 157: | 줄 164: | ||
| ; | ; | ||
| - | -- Oracle 11g 이상 | + | /* |
| - | -- Tibero 3 이상 | + | Oracle 11g 이상/Tibero 3 이상 |
| + | */ | ||
| WITH tree (cd_id, cd_nm, parent_cd_id, | WITH tree (cd_id, cd_nm, parent_cd_id, | ||
| SELECT | SELECT | ||
| 줄 188: | 줄 196: | ||
| ex_recursive a | ex_recursive a | ||
| INNER JOIN tree b | INNER JOIN tree b | ||
| - | ON a.parent_cd_id = b.cd_id | + | ON b.cd_id |
| ) | ) | ||
| SELECT | SELECT | ||
| 줄 198: | 줄 206: | ||
| ; | ; | ||
| - | -- Oracle 12c 이상 | + | /* |
| + | Oracle 12c 이상 | ||
| + | */ | ||
| WITH tree (cd_id, cd_nm, parent_cd_id, | WITH tree (cd_id, cd_nm, parent_cd_id, | ||
| SELECT | SELECT | ||
| 줄 222: | 줄 232: | ||
| ex_recursive a | ex_recursive a | ||
| INNER JOIN tree b | INNER JOIN tree b | ||
| - | ON a.parent_cd_id = b.cd_id | + | ON b.cd_id |
| ) | ) | ||
| SEARCH DEPTH FIRST BY sort_order SET seq | SEARCH DEPTH FIRST BY sort_order SET seq | ||
| 줄 235: | 줄 245: | ||
| ===== PostgreSQL ===== | ===== PostgreSQL ===== | ||
| - | <sxh sql; gutter: true; highlight: [63];> | + | <sxh sql; gutter: true; highlight: [67];> |
| - | -- PostgreSQL 8.4 이상 | + | /* |
| + | PostgreSQL 8.4 이상 | ||
| + | */ | ||
| WITH RECURSIVE tree (cd_id, cd_nm, parent_cd_id, | WITH RECURSIVE tree (cd_id, cd_nm, parent_cd_id, | ||
| SELECT | SELECT | ||
| 줄 262: | 줄 274: | ||
| ex_recursive a | ex_recursive a | ||
| INNER JOIN tree b | INNER JOIN tree b | ||
| - | ON a.parent_cd_id = b.cd_id | + | ON b.cd_id |
| ) | ) | ||
| SELECT | SELECT | ||
| 줄 272: | 줄 284: | ||
| ; | ; | ||
| - | -- PostgreSQL 14 이상 | + | /* |
| + | PostgreSQL 14 이상 | ||
| + | */ | ||
| WITH RECURSIVE tree (cd_id, cd_nm, parent_cd_id, | WITH RECURSIVE tree (cd_id, cd_nm, parent_cd_id, | ||
| SELECT | SELECT | ||
| 줄 296: | 줄 310: | ||
| ex_recursive a | ex_recursive a | ||
| INNER JOIN tree b | INNER JOIN tree b | ||
| - | ON a.parent_cd_id = b.cd_id | + | ON b.cd_id |
| ) | ) | ||
| SEARCH DEPTH FIRST BY sort_order SET seq | SEARCH DEPTH FIRST BY sort_order SET seq | ||
| 줄 307: | 줄 321: | ||
| ; | ; | ||
| </ | </ | ||
| + | |||
| + | {{tag>" | ||