如我在A表有以下几个字段:
BU       BU_NAME
------------------
FOOD 食品
FILM 薄膜
B&M BIB & MDP
PC 个人护理
SITE 基地我想重新将它组合成以下结果:FOOD     FILM      B&M      PC      SITE
-----------------------------------------
食品    薄膜    BIB & MDP  个人护理  基地请教一下如何才能等到上面的结果?
请高手帮忙,十万分火急~~~~分不够再加~~~~~

解决方案 »

  1.   

    都是类似的问题.
    http://community.csdn.net/Expert/topic/5157/5157619.xml?temp=.9562647
      

  2.   

    要求就是我在最上面说的那样,这种应该算是交叉表吧?希望高手能给出Orcale的SQL,这样我就不用去想了,呵呵~~
      

  3.   

    交叉表啦! 
    select decode(bu,'FOOD',bu_name) FOOD,
    decode(bu,'FILM',bu_name) FILM,
    ...
    ...
    from A
    如果记录数不定的话要写一存储过程用游标提取出field,再执行完整的sql
      

  4.   

    谢谢楼上的兄弟了~~记录数是不定的,如果将SQL放到存储过程来执行的话,Oracle的存储过程是无法返回数据表的,是不是只能通过建立另一个表来存放数据了?
      

  5.   

    写函数返回field的字串,再在程序里面执行,得到dataTable结果吧
      

  6.   

    >>记录数是不定的,如果将SQL放到存储过程来执行的话,Oracle的存储过程是无法返回数据表的,是不是>>只能通过建立另一个表来存放数据了?不一定,可以建立临时表或者is table of 之类的数据结构来存储。
    主要是看你的应用程序怎么来接收了。
      

  7.   

    可以创建视图:
    CREATE VIEW test_view 
    AS
    SELECT DECODE(BU,'FOOD',BU_NAME,'') FOOD,
    DECODE(BU,'FILM',BU_NAME,'') FILM,
    DECODE(BU,'B$M',BU_NAME,'') B$M,
    DECODE(BU,'PC',BU_NAME,'') PC,
    DECODE(BU,'SITE',BU_NAME,'') SITE
    FROM A;
      

  8.   

    那只能是通过函数返回sql了.然后,再去执行这个sql.