엑셀데이터를 쿼리문의 IN 절에서 사용해보자
회원 관련된 데이터를 뽑는 업무가 있다보니, 정형화된 쿼리를 통해 나오는 데이터가 아닌 담당자들이 만든 ID, 회원고유번호, 전화번호등 이 담긴 엑셀 파일에서 데이터를 뽑아야 하는 경우가 있습니다.
이럴 때 빠르게 IN절에 들어갈 데이터로 변환하는 방법을 소개하려 합니다.
2가지 방법을 알려드리려고 하는데 저는 2번을 주로 사용합니다.
예
방법1. 엑셀 함수 활용
엑셀 파일에서 바로 함수를 이용해서 만드는 방법이 있습니다.
핸드폰번호가 있는 "A2셀" 바로 옆 "B2셀" 에 조합된 문자를 만들어 줍니다.
'01012345678', <= 이런 구조가 되게 만들어야 IN 조건 안에서 데이터들을 나열할 수 있습니다.
="'"&A2&"',"
이렇게 문자를 조합한 후 가장 아래칸 까지 채우기 핸들을 이용합니다
▶ 채우기 핸들 설명 : http://blog.naver.com/beaqon/221107546762
주어진 데이터가 전부 같은 형식이 됩니다.
이제 남은 일은 가장 맨 마지막에 있는 셀('B10')의 문자에서 끝에 있는 , 만 지워주는 겁니다.
모든 작업이 끝나면 B셀에 있는 데이터를 전부 복사해서 IN 조건 안에 넣어서 검색해주시면 됩니다.
쿼리
select *
from member
where hp in(
'01012345678', |
'01013135855', |
'01021216954', |
'01023215152', |
'01033218541', |
'01025113633', |
'01022153313', |
'01025132131', |
'01025132941' |
)
이렇게 붙여넣기만 하면 끝이 납니다.
가장 간단한 방법입니다.
방법2. EditPlus 활용
엑셀에 있는 데이터를 EditPlus로 붙여넣기 해줍니다.
EditPlus 말고 다른 에디터에서도 충분히 제공되는 기능입니다.
원하는 에디터에서 사용하시면 될거 같네요.
Ctrl + H를 눌러서 바꾸기를 실행합니다.
찾을 말에 \n 를 넣어주고, 바꿀 말에 ',' 를 넣어준 후에 정규식 부분을 체크해주고, "모두 바꿈" 버튼을 눌러줍니다.
그럼 데이터가 아래처럼 바뀌게 됩니다.
01012345678','01013135855','01021216954','01023215152','01033218541','01025113633','01022153313','01025132131','01025132941
바뀐 부분의 제일 앞에 ' 를 추가해주고, 맨 뒤에 ' 를 추가해주면 됩니다.
'01012345678','01013135855','01021216954','01023215152','01033218541','01025113633','01022153313','01025132131','01025132941'
이 데이터를 복사한 후에
쿼리
select *
from member
where hp in (
01012345678','01013135855','01021216954','01023215152','01033218541','01025113633','01022153313','01025132131','01025132941'
)
이렇게 붙여넣기만 하면 끝이 납니다.
실행화면
EditPlus를 그냥 이렇게만 이용하면 많이 아쉬운 감이 있습니다.
그럴 땐 바로 메크로를 등록해놓으면 지금 했던 작업을 또 안해도 됩니다!
도구 > 기록 > 키 입력 기록을 눌러줍니다.
원하는 키를 선택하신 후에 확인을 눌러줍니다.
그럼 마우스포인트 오른쪽에 작은 테이프 모양이 생기게 됩니다.
지금부터 하는 작업은 기록이 됩니다.
위에서 설명드린 작업을 순차적으로 진행해 줍니다.
순차적으로 7번까지 완료하면 다시 도구 > 기록 > 키 입력 기록을 눌러줍니다.
1. Ctrl + H 키보드 키 누르기 (바꾸기 화면 열기)
2. 찾을 말에 \n 입력, 바꿀 말에 ',' 입력, 정규식 체크
3. 모두 바꿈 버튼 클릭
4. ESC 키보드 키 누르기 (바꾸기 창 종료)
5. 가장 앞에 ' 입력
6. End 키보드 키 누르기 (가장 맨 뒤로 이동)
7. ' 입력
다음에 작업할 때는 Alt + 등록한번호키 만 누르면 자동으로 저장된 기록이 실행되게 될겁니다.
데이터가 많지 않으면 직접 입력해주면 더 빠를 수 있지만,
보통 데이터는 몇 백개 혹은 몇 천개가 넘을 때도 있답니다.
그럴 땐 오늘 알려드린 두 가지 방법 중에 하나를 활용하시면 업무 시간 단축을 할 수 있습니다.
※ 명시된 데이터는 실제 데이터와 무관한 테스트 데이터임을 알려드립니다.
'웹개발 > DB' 카테고리의 다른 글
[DB] 툴을 이용하여 개발에 필요한 샘플데이터 만들기 (0) | 2018.06.06 |
---|---|
[Oracle] 테이블의 컬럼명을 쿼리를 이용하여 Camel표기법과 VO 변수 데이터로 자유롭게 변환 하자 (0) | 2018.06.03 |