首页 > 数据库技术 > 详细

Oracle pivot(行转列) 和unpivot(列转行)函数

时间:2019-07-03 22:33:36      阅读:159      评论:0      收藏:0      [点我收藏+]

行转列 pivot

select * from (      
 select t.product_sn, t.test_item, t.test_value
   from t_wip_device_interface t
  where t.mo_no=302-MO1903075049-1401
  and t.test_result=0
  ) pivot(max(test_value) for test_item in(CHGCur1, OV_Value, IR_Value, CycleCount, ProDate,
        Factory, ProductStr, Chemical, Characteristics, SerialNo,
        MBtemp, ICtemp, SoftVersion, HardwareVersion, Capacity,
        MBVolt, ICVolt, ICVoltOff, NCV_VoltValue, NCV_CurrValue,
        ICCHGCurr, ICCHGCurrOff, NDV_CurrValue, ICDSGCurr,
        ICDSGCurrOff, NDV_VoltValue, OCCHG_PCurr, OCCHG_PTime,
        OCDSG_PCurr, OCDSG_PTime, NDV_CurrValue_10A, ICDSGCurr_10A,
        ICDSGCurrOff_10A, NDV_VoltValue_10A, PCBtemp, Celltemp,
        OCOVP_Value, SWLowVolt, SWHighVolt, Key4LowVolt,
        Key4HighVolt))

列转行 unpivot

select sfc_no, result, test_item, test_vale
  from (
        select *
          from (select t.sfc_no,
                        t.result, D12 "IR",
                        D22 "OCV (DVM)",
                        D21 "OCV (GG)",
                        D23 "Voltage Accuracy",
                        D89 "Vcell_1",
                        D88 "Vcell_2",
                        D33 "Bank Offset Voltage",
                        D32 "Charge Current Accuracy",
                        D29 "Discharge Current Accuracy",
                        D45 "FCC",
                        D47 "RSOC",
                        D70 "Shipmode Output Voltage",
                        row_number() OVER(PARTITION BY t.sfc_no ORDER BY t.create_date desc) rn
                   from sfc_datagroup_tmp t
                  where t.oper in (6676ef52596f426c8745f2642a72f0a2)
                    and t.sfc_no in (10866770020000034910))
         where rn = 1
        ) unpivot(test_vale for test_item in ("IR", "OCV (DVM)", "OCV (GG)", "Voltage Accuracy", "Vcell_1", "Vcell_2", "Bank Offset Voltage", "Charge Current Accuracy","Discharge Current Accuracy", "FCC", "RSOC", "Shipmode Output Voltage"))

 

Oracle pivot(行转列) 和unpivot(列转行)函数

原文:https://www.cnblogs.com/xidianlxf/p/11129382.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!