Oracle实现行转列+Mybatis】的更多相关文章

1.需求 报表需要动态展示某几个公司分别在几个月内销售额情况(前端表头月份是动态的,月时间段是前端参数来选择的,最大为12个月), 页面展示如下 Oracle数据库中数据如下: 可以看到一个公司的月份数据是行的,现在要转成列 2.难点 ①行怎么转列 ②转成列后[''2019-01"][''2019-02"]....这种列名需要动态转成 [month1][month2]...这种列名~否则Java里面的VO层展示不出来 3.思路 当然是百度咯~ 4.行转列 "道生一,一生二,二…
在报表的开发当中,难免会遇到行转列的问题. 以Oracle中scott的emp为例,统计各职位的人员在各部门的人数分布情况,就可以用“行转列”: scott的emp的原始数据为: EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO 7369 SMITH CLERK 7902 12/17/1980 800.00 20 7499 ALLEN SALESMAN 7698 2/20/1981 1600.00 300.00 30 7521 WARD SALESMAN…
今天我一个学弟问了一个面试题: 有表A,结构如下:A: p_ID p_Num s_id1 10 011 12 022 8 013 11 013 8 03其中:p_ID为产品ID,p_Num为产品库存量,s_id为仓库ID.请用SQL语句实现将上表中的数据合并,合并后的数据为:p_ID s1_id s2_id s3_id1 10 12 02 8 0 03 11 0 8其中:s1_id为仓库1的库存量,s2_id为仓库2的库存量,s3_id为仓库3的库存量.如果该产品在某仓库中无库存量,那么就是0代…
在报表的开发当中,难免会遇到行转列的问题. 以Oracle中scott的emp为例,统计各职位的人员在各部门的人数分布情况,就可以用"行转列": scott的emp的原始数据为: 使用 "行转列" 统计各职位的人员在各部门的分布人数后,数据为: 一.经典的实现方式 主要是利用decode函数.聚合函数(如max.sum等).group by分组实现的 )) (DEPTNO)", )) (DEPTNO)", )) (DEPTNO)", )…
MySql行转列 以id分组,把name字段的值打印在一行,逗号分隔(默认) select CustomerDrugCode,group_concat(AuditItemName) from noaudit_drug group by CustomerDrugCode; 以id分组,把name字段的值打印在一行,分号分隔 select CustomerDrugCode,group_concat(AuditItemName separator ';') from noaudit_drug grou…
行转列: SELECT *   FROM   src_table   UNPIVOT (param_value FOR param_name IN (product_color AS 'product_color', product_type AS 'product_type', is_intelligent AS 'is_intelligent')); 列转换: select *  from ( select flow,xx from tab )   a pivot (max(value) f…
记录一段行转列SQL代码: select cs.standard_id,cs.area_code,cs.exu_dept, regexp_substr(exu_dept, , level) as dept_id from ca_stand_exu_dept cs connect by id = prior id , and prior dbms_random.value is not null;…
--行转列自定义函数,只针对TABLE1表 --paramType是参数类型,用于判断,param1和param2是条件参数 create or replace function My_concat(paramType in integer,param1 in varchar2,param2 in varchar2) return varchar2 is resultStr ); begin then --定义游标 for temp_cursor1 in (select CONTA_ID FRO…
with temp as( select '湖北省' province,'武汉市' city,'第一' ranking from dual union all select '湖北省' province,'孝感市' city,'第二' ranking from dual union all select '湖北省' province,'宜昌市' city,'第三' ranking from dual union all select '湖北省' province,'襄阳市' city,'第四'…
数据库中業種的存储如下图: SELECT * FROM M_TORIHIKISAKI_GYOSYU 其中GYIUSYU_CD字段代表不同的業種 而画面需要实现下图所示样式:(将每条数据的業種横向展开显示) 这种情况下便可以使用PIVOT方法,代码如下: SELECT  C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12 FROM M_TORIHIKISAKI_GYOSYUPIVOT(MAX(GYIUSYU_CD) FOR GYIUSYU_CD IN…