안녕하세요. 문자열 매치에 관해 질문이 있습니다.
A,B 두 테이블의 칼럼에는 NO, CONTENT라는 칼럼이 있습니다.
칼럼의 내용은 이렇습니다.
NO |
CONTENT |
---|---|
1 |
심각해진 만큼 범정부 차원의 위기 대응 체제를 물 샐틈 없이 유지해야 한다"고 당부했다. 박 대통령은 이날 오전 청와대 수석비서관회의를 주재한 자리에서 "금요일(24일) 영국이 EU탈퇴를 선택하면서 세계 금융 시장이 크게 요동치고 있고 또 우리 주식시장과 외환시장에도 파장이 미치고 있다"면서 이같이 밝혔다.그러면서 "시장 상황에 대한 24시간 모니터링과 함께 시장 안정화를 위해 필요한 모든 조치를 시행해서 우리 경제에 미치는 파급이 최소화될 수 있도록 해달라"고 주문했다. 이날 수석회의는 박 대통령이 올들어 6번째로 주재한 회의로 이원종 비서실장 등 두 차례에 걸친 청와대 인사 이후 첫 회의다. |
B 테이블의 칼럼에도 CONTENT칼럼이 존재합니다.
NO |
CONTENT |
1 |
박근혜 대통령은 27일 "시장상황에 대한 24시간 모니터링과 함께 시장 안정화를 위해 필요한 모든 조치를 시행해 우리 경제에 미치는 파급이 최소화될 수 있도록 해주기를 바란다"고 말했다. 박 대통령은 이날 청와대에서 수석비서관회의를 주재하면서 "우리 경제를 둘러싼 대외여건이 어느때보다도 심각해진만큼 범정부 차원의 위기대응 체제를 물샐틈 없이 유지해야 하겠다"면서 이같이 말했다. 박 대통령은 "지난 금요일 영국이 유럽연합(EU) 탈퇴를 선택하면서 세계 금융시장이 크게 요동치고 있고, 우리 주식시장과 외환시장에도 파장이 미치고 있다"면서 "국제 금융시장의 불확실성은 더 커지고, 글로벌 교역이 위축될 우려도 있다. 글로벌 금융시장의 불확실성이 증대함에 따라서 신흥시장에서의 자금 이탈현상도 예상이 된다"고 말했다. |
질문은 아래와같습니다.
두개의 테이블을 비교하여 같은 문자열이 있는지 확인하여 4~5단어만 매치하는 결과만 나오면 됩니다.
즉 결과는 아래처럼 나와야 합니다.
가시적으로 보기 쉽게 위 테이블의 내용과 아래 결과물을 색상으로 칠해놓았습니다.
NO | MATCH_WORDS | MATCH_COUNT_WORDS |
1 | 대한 24시간 모니터링과 함께 시장 | 5 |
2 | 안정화를 위해 필요한 모든 조치를 | 5 |
3 | 경제에 미치는 파급이 최소화될 수 | 5 |
4 | 우리 주식시장과 외환시장에도 파장이 미치고 | 5 |
검색기준을 A테이블에 두고 B의 단어들을 매치한 결과 입니다.
감사합니다.
WITH a AS ( SELECT 1 no, '심각해진 만큼 범정부 차원의 위기 대응 체제를 물 샐틈 없이 유지해야 한다"고 당부했다. 박 대통령은 이날 오전 청와대 수석비서관회의를 주재한 자리에서 "금요일(24일) 영국이 EU탈퇴를 선택하면서 세계 금융 시장이 크게 요동치고 있고 또 우리 주식시장과 외환시장에도 파장이 미치고 있다"면서 이같이 밝혔다.그러면서 "시장 상황에 대한 24시간 모니터링과 함께 시장 안정화를 위해 필요한 모든 조치를 시행해서 우리 경제에 미치는 파급이 최소화될 수 있도록 해달라"고 주문했다. 이날 수석회의는 박 대통령이 올들어 6번째로 주재한 회의로 이원종 비서실장 등 두 차례에 걸친 청와대 인사 이후 첫 회의다.' content FROM dual ) , b AS ( SELECT 1 no, '박근혜 대통령은 27일 "시장상황에 대한 24시간 모니터링과 함께 시장 안정화를 위해 필요한 모든 조치를 시행해 우리 경제에 미치는 파급이 최소화될 수 있도록 해주기를 바란다"고 말했다. 박 대통령은 이날 청와대에서 수석비서관회의를 주재하면서 "우리 경제를 둘러싼 대외여건이 어느때보다도 심각해진만큼 범정부 차원의 위기대응 체제를 물샐틈 없이 유지해야 하겠다"면서 이같이 말했다. 박 대통령은 "지난 금요일 영국이 유럽연합(EU) 탈퇴를 선택하면서 세계 금융시장이 크게 요동치고 있고, 우리 주식시장과 외환시장에도 파장이 미치고 있다"면서 "국제 금융시장의 불확실성은 더 커지고, 글로벌 교역이 위축될 우려도 있다. 글로벌 금융시장의 불확실성이 증대함에 따라서 신흥시장에서의 자금 이탈현상도 예상이 된다"고 말했다.' content FROM dual ) SELECT ROWNUM no , match_words , REGEXP_COUNT(match_words, ' ') + 1 match_count_words FROM (SELECT b.lv , CASE WHEN INSTR(' '||a.content||' ', ' '||b.x5||' ') > 0 THEN b.x5 ELSE b.x4 END match_words , MOD(ROW_NUMBER() OVER(PARTITION BY b.lv - ROWNUM ORDER BY b.lv), 5) flag FROM (SELECT lv , SUBSTR(content, INSTR( ' '||content, ' ', 1, lv) , INSTR(content||' ', ' ', 1, lv+4) - INSTR( ' '||content, ' ', 1, lv) ) x5 , SUBSTR(content, INSTR( ' '||content, ' ', 1, lv) , INSTR(content||' ', ' ', 1, lv+3) - INSTR( ' '||content, ' ', 1, lv) ) x4 FROM b , (SELECT LEVEL lv FROM dual CONNECT BY LEVEL <= 999) WHERE lv <= REGEXP_COUNT(content, ' ')-2 ) b , a WHERE INSTR(' '||a.content||' ', ' '||b.x5||' ') > 0 OR INSTR(' '||a.content||' ', ' '||b.x4||' ') > 0 ) WHERE flag = 1 ;