表如下:
表1
brand  key  content1
a      1    ccc
a      2    bbb
a      3    ddd
b      5    aaa
...
表2
brand  key  content2
a      1    xxx
a      1    yyy
a      2    zzz
b      8    hhh
...我想查询的是,当条件brand = a 时,查询结果如下:
brand  key  content
a      1    cccxxxyyy
a      2    bbbzzz
a      3    ddd解释一下,返回的结果是key中不应该有重复的,对应的content列是相应的key的content1中的所有与content2中所有的字符串连接。不需要一条语句,求出来就成,请教了,谢谢。

解决方案 »

  1.   

    直接用一个sql语句搞定我觉得是不可能的,要么写plsql,要么就在页面里对检索结果写算法。
      

  2.   

    行列转换,与CONNECT BY相结合可以实现,去GOOGLE哈
      

  3.   

    表1
    brand  key  content1
    a      1    ccc
    a      2    bbb
    a      3    ddd
    b      5    aaa
    ...
    表2
    brand  key  content2
    a      1    xxx
    a      1    yyy
    a      2    zzz
    b      8    hhh
    ...我想查询的是,当条件brand = a 时,查询结果如下:
    brand  key  content
    a      1    cccxxxyyy
    a      2    bbbzzz
    a      3    ddd
    select brand,key,(content1+content2) content from table1,table2 group by brand where table1.brand=table2.brand and table1.brand='a'
      

  4.   

    select brand,key,replace(path,' ','') as content from 
    (SELECT brand,key,max(SYS_CONNECT_BY_PATH(content,' ')) as path    
    FROM      
    (select brand,key,content,
    (row_number() over (order by brand,key,content)+dense_rank() over(order by brand,key)) rn, 
    min(content) over(partition by brand,key) content1
    from
    (select brand,key,content1 as content from table1
    union all 
    select brand,key,content2 as content from table2
    order by brand,key))
    START   WITH   content   =  content1
    CONNECT   BY   PRIOR   rn   =   rn-1
    group by brand,key)
      

  5.   

    先谢谢各位,我就是想用PLSQL,但是不知道该如何写好...