0

我有两个表,我想合并它们

TERMS_TABLE

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



TFIDF_TABLE

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

现在我想将 TERMS 列添加TERMS_TABLE到 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 回答