데이터베이스 개발자 질문과 답변 게시판

데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.

영문 어순 관계없이 비교

skytuner 2017.06.05 16:55 Views : 1403

안녕하세요. 처음 질문을 남겨봅니다. 고수님들 잘 부탁드립니다.


의료용어를 저장하는 두개의 테이블이 있는데 각 테이블에 '영문명' 컬럼이 있습니다.


각 테이블의 '영문명' 컬럼의 데이터가 같은경우로 조인을 걸려고 하는데, 


단순히 string 비교만으로 같은경우가 아니고,


어순과 관계없이 같은 단어들로 이루어진 행을 찾고자 합니다.


말로 풀어쓰려니 어려워서 예시를 들자면


[Table 1]

CODE_A, ENG

=================

A0001 a b c d

A0002 x y z

A0003 1a b c

A0004 Other specified diabetes mellitus with coma with lactic acidosis



[Table 2]

CODE_B, ENG

=================

B0001 a b c d

B0002 b c d a

B0003 b a c d

B0004 z y x

B0005 x y z x

B0006 y z x y

B0007 1a b c

B0008 c 1a b

B0009 Other specified diabetes mellitus with lactic acidosis with coma


여기서 원하는 결과물은

[Table 1] + [Table 2]

CODE_A, ENG_1, CODE_B, ENG_2

=================

A0001 a b c d B0002 b c d a

A0001 a b c d B0003 b a c d

A0002 x y z B0004 z y x

A0003 1a b c B0008 c 1a b
A0004 Other specified diabetes mellitus with coma with lactic acidosis B0009 Other specified diabetes mellitus with lactic acidosis with coma

입니다. ENG_1 과 ENG_2가 완전히 매치되는경우는 제외되어야하구요. (반드시는 아닙니다)

필수적으로 ENG_1과 ENG_2의 어순이 다르지만 속하는 단어들과 분절된 단어들의 수가 같아야 합니다.
* 분절: 공백(스페이스)을 구분자로 하여 용어를 split 함

단순하면 그냥 노가다로 할수 있겠는데..
분절후에 단어가 최대 50개까지 있고 데이터 양이 Table1은 약 30,000 rows, Table2는 약 4,000,000 rows 정도 됩니다.. ㅠ

현재는 무식하게 컬럼을 50개만든 테이블 2개를 만들어서 각각 테이블의 분절된 영문 단어들을 각 컬럼에 넣어서 각 컬럼별로 비교하는 쿼리를 짜보았는데... 한계에 부딪혀서 도움을 요청드립니다.

감사합니다!
No. Subject Author Date Views
9877 DB고수님들께 질문 있습니다.(간단한듯 어려운!) [2] 무마뭉 2017.06.14 3132
9876 Exerd 에서 엑셀로 import [1] 잭키올 2017.06.14 3734
9875 if 문에서 순차적 실행 GO 대신 쓸수 있는게 머가 있을까요? [2] neiyan 2017.06.13 2727
9874 row_number 에서 case 질의 입니다. [4] 호짱 2017.06.13 3150
9873 SQL문의 성능향상에 관한 질문 [1] niceman5 2017.06.13 3132
9872 QUERY 부탁드리겠습니다. [2] 호짱 2017.06.13 2885
9871 group by 쿼리 질문 드려요. [2] 솔총이 2017.06.12 2076
9870 MMC가 다음과 같은 오류창을 띄웁니다 영원히학생 2017.06.12 4676
9869 join문 조건 질문 드립니다 [2] 식뽕 2017.06.09 2109
9868 랜덤 게시판 페이징 기능 [2] 무마뭉 2017.06.08 1892
9867 csv 문의 드립니다. [1] goblin 2017.06.06 2231
9866 중복된 데이터(중복값)이 있을경우 1씩증가. 중복되지 않으면 1로 데이터 추출 방법 [1] 꽃보다서준 2017.06.05 2446
» 영문 어순 관계없이 비교 [2] skytuner 2017.06.05 1403
9864 SQL Injection 해킹 방어 문의 [1] embster 2017.06.05 1810
9863 merge 문 사용 관련 문의 [3] 나는짱이야 2017.06.01 2491
9862 union 에 order by 를 각각 지정할수 있나요? [6] 문상연 2017.06.01 2307
9861 조건절에서 질문이잇습니다 [2] 문상연 2017.05.31 1852
9860 RAISERROR 질문 [2] 후알유? 2017.05.31 1823
9859 인덱스를 거는 요령? [4] 문상연 2017.05.30 2073
9858 동일 그룹 내 특정 조건 제거하는 쿼리문 [3] ㅁㄴㄴㄴ 2017.05.30 1570





XE Login