zoukankan      html  css  js  c++  java
  • Oracle多行记录合并处理

    1:效果如下图所示:

    表T1:

    CREATE TABLE T1 
    (
      WEEKWORKID VARCHAR2(20) ,
      DD VARCHAR2(20) 
    ) 
    

    表T2

    CREATE TABLE T2 
    (
      WEEKWORKID VARCHAR2(20) ,
      NR VARCHAR2(20) 
    )

    SQL语句:

    select t2.weekworkid,t2.nr,T.dd
    from t2
    left join (
      -- 4筛选结果集
      select weekworkid,max(substr(dd,2))dd
      from(
        -- 3使用sys_connect_by_path生成结果集
        select weekworkid,sys_connect_by_path(dd,',')dd
        from(
          -- 2创建子节点与父节点
          select weekworkid,dd,weekworkid||rn rchild,weekworkid||(rn-1)rfather
          from(
            -- 1对记录添加序号
            select t1.weekworkid,t1.dd,row_number() 
                over(partition by t1.weekworkid order by t1.dd) rn 
            from t1
            where t1.weekworkid in(
              select weekworkid from t2
            )
          )
        )connect by prior rchild = rfather start with rfather like '%0'
      ) group by weekworkid
    )T on t2.weekworkid=T.weekworkid
    order by weekworkid

    运行结果:

  • 相关阅读:
    nginx 按天生成日志
    cmder
    EXCEL最大行数问题:org.apache.xmlbeans.impl.store.Saver$TextSaver.resize(Saver.java:1700)
    nginx configure 错误记录
    Flume NetCat Demo
    Flume
    hbase
    kafka安装配置
    azkaban
    sqoop
  • 原文地址:https://www.cnblogs.com/yshyee/p/4187989.html
Copyright © 2011-2022 走看看