oracle 계층형 쿼리 검색조건으로 가능할까요? 0 4 2,578

by 구루유니 [SQL Query] [2024.01.10 15:16:46]


안녕하세요! 궁금한게 있어서 글 남깁니다.

1개의 계층형 테이블에 데이터가 

과거 - > 현재

A  -  B  -  C 라고 가정했을때 현재 데이터는 C의 데이터만 불러오게 되어있습니다.

검색조건이 LIKE로 걸려있는 상황인데 B의 데이터를 검색조건에 입력했을때 C가 나오도록 하는것이 가능할까요? 

궁금해서 여쭈어봅니다! 

by 마농 [2024.01.10 15:32:29]

가능합니다.
다만.
질문을 좀 더 상세하게 해주셔야 합니다.
1. 현제 데이터가 어떤 형태로 들어 있는지? -> 데이터 샘플
2. 검색은 어떤식으로 하고 있는지? -> 사용 쿼리
3. 어떤 형태의 결과를 원하는지? -> 원본 대비 결과 예시


by 구루유니 [2024.01.10 16:24:40]

현재 데이터는 

일련번호 참고일련번호 명명
  3000     2000            GS 테스트1
  2000     1000            GS 테스트2
  1000     NULL            GS 테스트3
  이런 식으로 들어가고 있습니다! 

검색은 WHERE 명명 LIKE '%' || '테스트3' || '%' 으로 했을시 테스트1의 일련번호의 값을 출력해야하는 상황입니다. 

EX) LIKE '%' || '테스트3' || '%' 조회 시       3000     2000            GS 테스트1

입니다! 


by 마농 [2024.01.10 16:34:09]
WITH t AS
(
SELECT 3000 no, 2000 pno, 'GS 테스트1' nm FROM dual
UNION ALL SELECT 2000, 1000, 'GS 테스트2' FROM dual
UNION ALL SELECT 1000, NULL, 'GS 테스트3' FROM dual
UNION ALL SELECT 3100, 2100, 'CU 테스트0' FROM dual
UNION ALL SELECT 2100, 1100, 'CU 테스트3' FROM dual
UNION ALL SELECT 1100, NULL, 'CU 테스트3' FROM dual
)
SELECT DISTINCT *
  FROM t
 WHERE CONNECT_BY_ISLEAF = 1
 START WITH INSTR(nm, '테스트3') > 0
 CONNECT BY PRIOR no = pno
;

 


by 구루유니 [2024.01.11 09:37:37]

감사합니다 큰도움 됐습니다!

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입