本帖最后由 tomorrowzm 于 2012-11-16 17:23:05 编辑

解决方案 »

  1.   

    给你例子
    CREATE TABLE t_row_col AS
    SELECT 1 a, 'c1' cn, 10 cv
       FROM dual
    UNION ALL
    SELECT 2 a, 'c2' cn, 20 cv
       FROM dual
    UNION ALL
    SELECT 3 a, 'c3' cn, 30 cv FROM dual;SELECT 
       MAX(decode(cn, 'c1', cv, NULL)) AS c1,
       MAX(decode(cn, 'c2', cv, NULL)) AS c2,
       MAX(decode(cn, 'c3', cv, NULL)) AS c3
       FROM t_row_col
      

  2.   

    如果数据量一定并且很少的话可以用sql,
    否则就要用plsql : procedure
      

  3.   

    用存储过程,动态拼接。
    百度,oracle,动态行转列
      

  4.   

    需要转换的列不是定数的话,只能用动态SQL拼接了吧