Oracle行转列SQL后台代码

String mapSql = "";

  for(String key : map.keySet()){

   Map<String, String> tempMap = map.get(key);

   for(String tempKey : tempMap.keySet()){

    colName = tempMap.get(tempKey);

    colCode = tempKey;

    if(!"".equals(mapSql)){

     mapSql += " UNION ALL ";

    }

    StringBuffer sqs = new StringBuffer();

    sqs.append("SELECT '"+colCode+"', T.* FROM (WITH pivot_data AS (SELECT '"+ colName +"',"+ colCode +", TAB_YEAR ");

    sqs.append("FROM US_APP."+key+")  SELECT *  FROM   pivot_data  PIVOT (SUM("+ colCode +")");

    sqs.append("FOR TAB_YEAR IN  ("+ years +" ) )) T ");

    mapSql += sqs.toString();

   }

  }

  List<Object[]> _querylist = genericDao.getDataWithNativeSql(mapSql);

 

  StringBuffer bf = new StringBuffer();

  if(_querylist.size() > 0){

   for(int i = 0; i < _querylist.size(); i++){

    Object[] obj = (Object[]) _querylist.get(i);

    int size = _listTabYear.size();

    bf.append("{codeName:'"+obj[0]+"',");

    bf.append("gdpName:'"+obj[1]+"',");

    for(int t = 0; t < size; t++){

     Object[]  tempObj = _listTabYear.get(t);

     bf.append(tempObj[0] + ":'"+obj[t+2]+"'");

     if(t == size - 1){

      bf.append("}");

     }

     bf.append(",");

    }

   }

   return "{success : true, gridData : [" + bf.substring(0, bf.length() -1) + "], fieldsCode : ["+years+"]}";

  }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值