0

2 つのテーブルがあり、それらをマージしたい

TERMS_TABLE

 ID  | TERMS
 309 | 'hardware'
 309 | 'software'
 309 | 'computer'



TFIDF_TABLE

  ID | TERMS
 309 |'computer,phone,mp3....'

TERMS_TABLEの TERMS列をの terms 列に追加したいのですTFIDF_TABLEが、 TFIDF_TABLE に TERMS_TABLE の TERMS が既に含まれている場合は、この用語を NEW_TFIDF_TABLE に挿入しないでください。

結果は次のようになります。

NEW_TFIDF_TABLE

  ID | TERMS
 309 |'computer,phone,mp3....,hardware,software'

どうやってやるの ?

4

1 に答える 1

2

Oracle 11を使用している場合は、これを試すことができます:

select t3.id, t3.terms||','||t4.terms terms from 
(
select t1.id, listagg(t1.terms,',') within group (order by t1.terms)  terms
from terms_table t1 join tfidf_table t2 on  t1.id=t2.id
where instr(t2.terms,t1.terms)=0 
group by t1.id ) 
t3 right outer join tfidf_table  t4 on t3.id=t4.id

Oracle 10で試すことができます

select t3.id, t3.terms||','||t4.terms terms from 
(
select t1.id, wm_concat(t1.terms)  terms
from terms_table t1 join tfidf_table t2 on  t1.id=t2.id
where instr(t2.terms,t1.terms)=0 
group by t1.id ) 
t3 right outer join tfidf_table  t4 on t3.id=t4.id
于 2011-10-25T09:15:22.653 に答える