JOIN문 사용에 있어서 서로 약간 다른 문자를 같게 매칭할 수 있나요? 0 1 401

by 베르강 [2021.08.12 20:14:07]


샘플코드.txt (1,130Bytes)

안녕하세요.

너무 초보라서 질문드리기 너무 죄송합니다ㅠ

혹시 조인문에서 데이터 명을 통해 매칭을 하려는데 서로 다른 문자도 매칭이 가능한가요?

두가지 경우가 생겨서 문의 드립니다.

경우1

예를 들어 A의 시간대별코드와 B의 시간대별 코드를 매칭하려고 하는데

A코드는 1,2,3,4로 되어 있고, B코드는 01,02,03,04로 되어 있습니다.

계속 NULL값이 되어서 보니 이렇게 적재 되어 있더라구요ㅠㅠ

경우2

다른 코드들은 다 똑같이 매칭이 되는데 하나의 속성만 다르게 되어 있는 경우 입니다.

A코드는 01, 02, 03, 04로 되어 있는데 B코드는 1, 02, 03, 04로 되어 있어서 01에 대한 부분만 NULL값으로 도출 됩니다ㅠㅠ

그래서 속편하게 CASE WHEN문으로 일일이 지정해서 쓰고 있는데...(첨부파일)

조인문으로 해결할 수 있는 방법은 없을까요?

읽어 주셔서 너무 감사드립니다.

좋은 하루 되시기 바랍니다.

감사합니다.

by 마농 [2021.08.17 09:43:39]

한쪽에 0 을 붙여주거나, 한쪽에 0 을 빼줌으로써.
양쪽의 자리수를 맞추어 조인하시면 됩니다.
인덱스가 있는 쪽 컬럼은 가공하지 않는게 좋습니다.
CASE 1
- LPAD(a.cd, 2, '0') = b.cd
- a.cd = LTRIM(b.cd, '0')
CASE 2
- a.cd = LPAD(b.cd, 2, '0')

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