mybatis+postgresql crosstab 函数动态行转列
来源:互联网 发布:淘宝客服代码怎么用 编辑:程序博客网 时间:2024/06/03 05:07
crosstab(text source_sql, text category_sql)
source_sql 需要行转列的原始数据
category_sql 值列
crosstab 函数有个问题就是列数量必须提前定义,不能动态生成,只能后台提前生成然后传给mybatis 作为参数 如下面的columns ,这样可以做到动态行转列,
此语句必须返回一个rowid列,一个 类别列和一个 值列。它也可能有一个或多个“额外”列。在 rowid列必须是第一个。该类别和值字段必须是最后两列,按照这个顺序。row_name和category之间的任何列都被视为“extra”。该“额外”列预计将具有相同的所有行相同ROW_NAME 值。
SELECT * FROM crosstab ( '<include refid="source_sql"/>', '<include refid="category_sql"/>' ) AS T ( ${columns} )) AS crossval</select>
后台代码拼成 ${columns} 内容
列1 int8,列2 VARCHAR,列3 VARCHAR,列4 VARCHAR
category_sql 如下:
select id from emp GROUP BY id,name order by 1
source_sql 如下:
SELECT item_id as rowid, emp_id as category , score as values FROMemp_score
注意
1这里 emp表的id 是 emp_score 表的category对应,source_sql 顺序就是 第一个是列名,第二个是和category_sql 对应的字段,第三个是value,顺序是固定的
2.如果在source_sql 里面加条件查询,需要单引号转义,
<if test="begin != null"> AND create_time >=`''#{begin}''` </if>
阅读全文
0 0
- mybatis+postgresql crosstab 函数动态行转列
- 不使用crosstab实现PostgreSQL的行转列应用
- Crosstab, Rotate, Pivot sybase ASA 交叉,行转列
- mybatis + postgresql
- PostgreSQL数据库动态函数脚本编写注意事项
- postgre crosstab函数 查询条件传入变量写法
- Pandas分组统计函数:groupby、pivot_table及crosstab
- crosstab reports
- ireport - crosstab
- C 中调用 PostgreSQL 内置动态加载函数的方法
- postgresql 函数
- postgreSQL函数
- PostgreSQL-函数
- postgresql函数
- Postgresql 函数
- PostgreSQL的行转列函数使用一例
- postgresql & Mybatis 序列自增
- CrossTab類型報表取得動態欄位值.
- loadrunner手动写http脚本的全过程
- struts2的简单使用
- 面试小结(一)
- SpringBoot非官方教程 | 第十八篇: 定时任务(Scheduling Tasks)
- 《设计模式》学习笔记6——原型模式
- mybatis+postgresql crosstab 函数动态行转列
- Java之——使用JMX监控Tomcat
- java中的StringBuilder类常用方法
- 深入理解 Java 虚拟机-内存
- 不舍编码:部分互联网公司笔试综合题及答案
- 数据结构之平衡二叉树
- 打印菱形
- java 及lua proto 生成
- C++使用CHttpFile实现Http请求