by 윤 [SQL Query] SQL Oracle [2020.11.16 14:31:17]
SELECT CASE WHEN A.A01_ID = B.B_ID THEN B.B_NM ELSE '' END A01_NM , CASE WHEN A.A02_ID = B.B_ID THEN B.B_NM ELSE '' END A02_NM , A.* FROM TABLE_A A TABLE_B B WHERE A.A01_ID = B.B_ID OR A.A02_ID = B.B_ID [질문] A테이블의 간략한 구성을 보면 계약ID 하나에 주고객ID와 서브고객ID로 구성이 되어있습니다(1개의 ROW) 고객의 이름을 알고 싶어서 TABLE_B와 조인을 했는데요 CASE문을 사용해서 각 ID와 일치하는 이름을 불러와서 보여주려고 했습니다 하지만 이렇게 조회되는 경우 ------------------------------------------------------------------------------------------ A01_NM | A02_NM | A테이블의 정보~ ------------------------------------------------------------------------------------------ 이름1 NULL 정보1~ NULL 이름2 정보1~ 이렇게 출력이 됩니다 이 결과를 ------------------------------------------------------------------------------------------ A01_NM | A02_NM | A테이블의 정보~ ------------------------------------------------------------------------------------------ 이름1 이름2 정보1~ 이렇게 한줄로 확인 하고 싶은데 이런식으로 출력하려면 CASE문을 작성한 곳에 MAX로 묶어서 NULL 대신 데이터가 조회되게 하며 나머지 A테이블 정보의 컬럼을 모두 나열해서 GROUP BY 해주는 방법밖에 없는건가요ㅠㅠ