SQL 상위코드 관련 쿼리 질문 0 1 193

by 십이장기 [Oracle 기초] [2020.11.19 16:59:17]


데이터로는

 

 

테이블 A

ID   PC_NM    PAR_ID         

1    PC방1        NULL

2     PC방2      1

3    PC방3      2

4     PC방4     1

5    PC방5     2

6   PC방6        NULL

7   PC방7       6

8   PC방8       7

 

이런식으로 데이터가있으면

 

계층형 쿼리로 사용하여

 

PC방1   PC방2    PC방3

PC방1   PC방4    PC방5

PC방6   PC방7    PC방8

 

이렇게 상위코드가 NULL이면 1레벨 , 1레벨을 상위코드로 가지고있으면 2레벨, 2레벨을 상위코드로 가지고있으면 3레벨로 바라보고

가져오고 싶습니다.

SELECT  (SELECT PC_NM FROM AAA a2 WHERE a2.ID = a1.PAR_ID) AS c1,
decode(a1.PAR_ID,'','',a1.PC_NM ) AS c2,
(SELECT PC_NM FROM AAA aa2 WHERE aa2.PAR_ID = a1.ID)AS c3
FROM AAA a1 

 

현재상위 아이디가 가지고있는 PC방이름을 가져오고, 두번째로 자기 자신을 가져왔는데

마지막 3번째 SELECT문에서 현재 자신을 상위로 가지고있는 데이터중에서 한개를 가지고오고 싶은데 여러건을 가지고 오니 단일행 관련 에러떨어지면서 안되네요 ㅠㅠ 무슨 좋은 방법이 없을까요?

by 마농 [2020.11.20 08:08:16]

이전 질물글에 답글 있네요.
http://gurubee.net/article/83736

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