第一个表
第二个表怎么把第二个表上面的字段名称改成跟第一个表里面对应的中文名称

解决方案 »

  1.   

    楼主百度一下 Oracle + unpivot,有问题再来追问;
      

  2.   

    是行转列吧?
    select * from T_HR_SCHMHIS_661459830094394 a
    UNPIVOT (
    FNUMBER FOR FNAME_L2 IN 
    ( FFSAL207 AS 'FFSAL207',FSAL041 AS 'FSAL041',FSAL007 AS 'FSAL007',FFSAL224 AS 'FFSAL224',FFSAL235 AS 'FFSAL235')
    );没有效果
      

  3.   

    是行转列吧?
    select * from T_HR_SCHMHIS_661459830094394 a
    UNPIVOT (
    FNUMBER FOR FNAME_L2 IN 
    ( FFSAL207 AS 'FFSAL207',FSAL041 AS 'FSAL041',FSAL007 AS 'FSAL007',FFSAL224 AS 'FFSAL224',FFSAL235 AS 'FFSAL235')
    );没有效果是行转列吧?
    select * from T_HR_SCHMHIS_661459830094394 a
    UNPIVOT (
    FNUMBER FOR FNAME_L2 IN 
    ( FFSAL207 AS 'FFSAL207',FSAL041 AS 'FSAL041',FSAL007 AS 'FSAL007',FFSAL224 AS 'FFSAL224',FFSAL235 AS 'FFSAL235')
    );没有效果
    而且我这个是要第一个表去关联第二个表的数据,跟行列转换没有关系吧?搞不懂
      

  4.   

    直接case when 就解决了
      

  5.   

    select FFSAL001 as '基本工资', FFSAL002 as '奖金'  T_HR_SCHMHIS_661459830094394类似这样了,剩下的楼主自己补全楼上的各位理解错了意思,楼主并不想把表一转化为表二
      

  6.   

    decode 和case when都行,但是字段太多了,100多个
      

  7.   

    decode 和case when都行,但是字段太多了,100多个
    不是unpivot,而是pivot,你去查一下语法,也是要in一百多个字段,省去了case when而已
      

  8.   

    列名用中文到是少见,这个你可以使用动态sql 先用代码拼凑好执行的sql 然后在动态sql 执行