有两张表A,B,A里放的是大类,B里放的是小类,比如A里放的是蔬菜,B是具体菜名,我怎么样取出像"
蔬菜-菠菜-青菜-萝卜
水果-苹果-橘子-香蕉-梨(小类长度可能不等:如蔬菜只有3种,水果有4种)……"这样的结果呢?

解决方案 »

  1.   

    补充一下,B里的是 大类-小类 这样的字段 A里的就是 大类 这个字段 
    比如 A:何物(字段) B:何物-何名  
    A数据 :蔬菜
           水果
           汽车
    B数据: 蔬菜-菠菜
           蔬菜-萝卜
           蔬菜-青菜
           水果-苹果
           水果-香蕉…………
      

  2.   

    参考:http://blog.csdn.net/dinya2003/archive/2004/11/30/198816.aspx
      

  3.   

    to dinya2003(OK) 
    剛剛看了"关于竖表转横表的问题",學會了使用函數來解決,非常感謝!
    另有一個小小的問題再請教一下
    原文中:
    第二种转换方式:需求描述:要求将表中的年级、科目及最高的信息按照下表的格式显示,如果该年级没开的课程,则其最高分用0表示:年级       语文          数学         英语      政治一年级        95           98            0               0二年级        86           90            0              87三年级        93           88           88              97 分析:该需求将年级的分数及科目信息由纵向转为横向,这样就要针对每个年级的,对其科目进行判断,存在科目则显示科目的最高分,如果不存在显示0。这时候就考虑到使用decode函数来解决。实现如下: select 
        decode(t.grade_id,1,'一年级',2,'二年级',3,'三年级') 年级,
        sum(decode(t.subject_name,’语文’,t.max_score,0)) 语文,
        sum(decode(t.subject_name,'数学',t.max_score,0)) 数学,
        sum(decode(t.subject_name,'英语',t.max_score,0)) 英语,
        sum(decode(t.subject_name,'政治',t.max_score,0)) 政治
    from 
        test_table t
    group by 
        t.grade_id 
    如果Table中的年級的多少還有科目的多少都不固定,decode應該就不可以使用了,另外還有什麼解決辦法呢?因為最近我剛剛也碰到了這個問題,最後只能在客戶端做的程序處理來達到顯示效果.