mybatis xml <choose>标签使用
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 收入统计报表相关 -->
<mapper namespace="revenueStatistics"> <!-- 清空表 -->
<update id="truncateTable" >
truncate table ${tablename}
</update> <!-- 新建并复制表 -->
<update id="copyToHisTable" >
CREATE TABLE revenue_statistics_res_his AS SELECT * FROM revenue_statistics_res
</update> <!-- 删除表 -->
<update id="dropHisTable" >
drop table revenue_statistics_res_his
</update> <!--查询当前收入最大账期-->
<select id="getMaxAccountDay" resultType="String">
SELECT MAX(ACCOUNT_DAY) FROM ct_lan_node_inc
</select> <!--查询所有行业列表-->
<select id="countRevenueNum" resultType="int">
select count(1) from revenue_statistics_res
</select> <!--查询所有行业列表-->
<select id="queryAllIndusty" resultType="java.util.Map">
select INDUSTRY_TYPE_ID,
PAR_INDUSTRY_TYPE_ID,
INDUSTRY_TYPE_GRADE,
INDUSTRY_TYPE_CODE,
INDUSTRY_TYPE_NAME
from industry_type
</select> <!--查询二级市(本地网)-->
<select id="querySubCity" resultType="java.util.Map">
select COMMON_REGION_ID,REGION_NAME,REGION_NBR,PAR_REGION_ID from common_region WHERE PAR_REGION_ID = #{REGION_ID}
</select>
<!--查询序列-->
<select id="queryRevenueEQ" resultType="String">
SELECT SEQ_REVENUE_STATISTICS_RES.NEXTVAL FROM DUAL
</select>
<!--查询各省客户总数-->
<select id="queryTotalNum" parameterType="java.util.Map" resultType="java.util.Map">
SELECT CUST_TOTAL_ID,REGION_ID,CUST_TOTAL FROM PROVI_CUST_TOTAL
</select> <!--查询全部客户数-->
<select id="queryAllTotal" parameterType="java.util.Map" resultType="int">
SELECT sum(CUST_TOTAL) count from provi_cust_total
</select> <!--查询各省客户总数-->
<select id="queryRegionNbr" parameterType="java.util.Map" resultType="java.util.Map">
SELECT COMMON_REGION_ID,REGION_NAME,REGION_NBR FROM COMMON_REGION WHERE COMMON_REGION_ID = #{COMMON_REGION_ID}
</select> <select id="queryAllIncome" parameterType="String" resultType="String">
${sql2}
</select> <!-- 查询合规收入,改为根据CUST_CP_MERGE表中的PARTY判断 -->
<select id="queryIncome" parameterType="java.util.Map" resultType="java.util.Map">
SELECT /*+PARALLEL(12)*/
COUNT(e.CUST_ID) CUSTNUM, COUNT(DISTINCT(m.PARTY_ID)) PARTYNUM,
SUM(TY_1) TY1 FROM EDA_CUST_INC e, CUST_CP_MERGE m WHERE 1 = 1
and e.CUST_ID = m.CUST_ID
AND e.STD_LATN_CD = m.STD_LATN_CD
and m.PARTY_ID IS NOT NULL
AND UPPER(m.PARTY_ID) != 'NULL'
<if test="STD_PRVNCE_CD != null and STD_PRVNCE_CD != ''">
AND e.STD_PRVNCE_CD = #{STD_PRVNCE_CD}
</if>
<if test="STD_LATN_CD != null and STD_LATN_CD != ''">
AND e.STD_LATN_CD = #{STD_LATN_CD}
</if> <choose>
<when test="PROD_TYPE != null and PROD_TYPE != ''">
AND e.PROD_TYPE = #{PROD_TYPE}
</when>
<otherwise>
AND e.PROD_TYPE is null
</otherwise>
</choose> <choose>
<when test='IDENTITY_TYPE == "-1"'>
AND not EXISTS (SELECT 1
FROM PARTY P
WHERE m.PARTY_ID = p.PARTY_ID)
</when> <when test='IDENTITY_TYPE == "-2"'>
AND EXISTS (SELECT 1
FROM PARTY P
WHERE m.PARTY_ID = p.PARTY_ID
AND p.IDENTITY_TYPE is null)
</when> <otherwise>
AND EXISTS (SELECT 1
FROM PARTY P
WHERE m.PARTY_ID = p.PARTY_ID
AND p.IDENTITY_TYPE = #{IDENTITY_TYPE})
</otherwise>
</choose> <choose>
<when test='INDUSTRY_TYPE_ID == "-1"'>
and not exists (select 1
from party_org po
where m.party_id = po.party_id)
</when>
<when test='INDUSTRY_TYPE_ID == "-2"'>
and exists (select 1
from party_org po
where m.party_id = po.party_id
and po.INDUSTRY_TYPE_ID is null)
</when>
<otherwise>
and exists (select 1
from party_org po
where m.party_id = po.party_id
and po.INDUSTRY_TYPE_ID = #{INDUSTRY_TYPE_ID})
</otherwise>
</choose> </select> < <!-- 插入统计结果表 -->
<insert id="insertRevenue2" parameterType="com.tydic.jtcrm.revenueStatistics.vo.RevenueStatistics"> INSERT INTO REVENUE_STATISTICS_RES
( ID,
PROVINCE_REGION_ID,
CITY_REGION_ID,
REGION_NAME,
REGION_GRADE,
PROD_TYPE,
INDUSTRY_TYPE_ID,
INDUSTRY_TYPE_CODE,
INDUSTRY_TYPE_NAME,
PAR_INDUSTRY_TYPE_ID,
INDUSTRY_TYPE_GRADE,
IDENTITY_TYPE,
IN_DATE,
UP_DATE,
STATUS_CD,
REMARK,
CUST_TYPE,
ALL_CUST_NUM,
ALL_INCOME,
AUDIT_CUST_NUM,
AUDIT_CUST_PARTY_NUM,
TY_1,
TY_2,
TY_3,
TY_4,
TY_5,
TY_6,
TY_7,
TY_8,
TY_9,
TY_10,
TY_11,
TY_12,
LY_1,
LY_2,
LY_3,
LY_4,
LY_5,
LY_6,
LY_7,
LY_8,
LY_9,
LY_10,
LY_11,
LY_12)
VALUES
(SEQ_REVENUE_STATISTICS_RES.NEXTVAL,
<choose>
<when test="PROVINCE_REGION_ID != null and PROVINCE_REGION_ID != ''">
#{PROVINCE_REGION_ID},
</when>
<otherwise>
null,
</otherwise>
</choose>
<choose>
<when test="CITY_REGION_ID != null and CITY_REGION_ID != ''">
#{CITY_REGION_ID},
</when>
<otherwise>
null,
</otherwise>
</choose>
<choose>
<when test="REGION_NAME != null and REGION_NAME != ''">
#{REGION_NAME},
</when>
<otherwise>
null,
</otherwise>
</choose>
<choose>
<when test="REGION_GRADE != null and REGION_GRADE != ''">
#{REGION_GRADE},
</when>
<otherwise>
null,
</otherwise>
</choose>
<choose>
<when test="PROD_TYPE != null and PROD_TYPE != ''">
#{PROD_TYPE},
</when>
<otherwise>
null,
</otherwise>
</choose>
<choose>
<when test="INDUSTRY_TYPE_ID!= null and INDUSTRY_TYPE_ID!= ''">
#{INDUSTRY_TYPE_ID},
</when>
<otherwise>
null,
</otherwise>
</choose>
<choose>
<when test="INDUSTRY_TYPE_CODE!= null and INDUSTRY_TYPE_CODE!= ''">
#{INDUSTRY_TYPE_CODE},
</when>
<otherwise>
null,
</otherwise>
</choose>
<choose>
<when test="INDUSTRY_TYPE_NAME!= null and INDUSTRY_TYPE_NAME!= ''">
#{INDUSTRY_TYPE_NAME},
</when>
<otherwise>
null,
</otherwise>
</choose> <choose>
<when test="PAR_INDUSTRY_TYPE_ID != null and PAR_INDUSTRY_TYPE_ID != ''">
#{PAR_INDUSTRY_TYPE_ID},
</when>
<otherwise>
null,
</otherwise>
</choose>
<choose>
<when test="INDUSTRY_TYPE_GRADE!= null and INDUSTRY_TYPE_GRADE != ''">
#{INDUSTRY_TYPE_GRADE},
</when>
<otherwise>
null,
</otherwise>
</choose>
<choose>
<when test="IDENTITY_TYPE != null and IDENTITY_TYPE != ''">
#{IDENTITY_TYPE},
</when>
<otherwise>
null,
</otherwise>
</choose>
sysdate,
sysdate,
<choose>
<when test="STATUS_CD != null and STATUS_CD != ''">
#{STATUS_CD},
</when>
<otherwise>
null,
</otherwise>
</choose>
<choose>
<when test="REMARK != null and REMARK != ''">
#{REMARK},
</when>
<otherwise>
null,
</otherwise>
</choose>
<choose>
<when test="CUST_TYPE != null and CUST_TYPE != ''">
#{CUST_TYPE},
</when>
<otherwise>
null,
</otherwise>
</choose>
#{ALL_CUST_NUM},
<choose>
<when test="ALL_INCOME != null and ALL_INCOME != ''">
#{ALL_INCOME},
</when>
<otherwise>
null,
</otherwise>
</choose>
<choose>
<when test="AUDIT_CUST_NUM != null and AUDIT_CUST_NUM != ''">
#{AUDIT_CUST_NUM},
</when>
<otherwise>
null,
</otherwise>
</choose>
<choose>
<when test="AUDIT_CUST_PARTY_NUM != null and AUDIT_CUST_PARTY_NUM != ''">
#{AUDIT_CUST_PARTY_NUM},
</when>
<otherwise>
null,
</otherwise>
</choose>
#{TY_1},
#{TY_2},
#{TY_3},
#{TY_4},
#{TY_5},
#{TY_6},
#{TY_7},
#{TY_8},
#{TY_9},
#{TY_10},
#{TY_11},
#{TY_12},
#{LY_1},
#{LY_2},
#{LY_3},
#{LY_4},
#{LY_5},
#{LY_6},
#{LY_7},
#{LY_8},
#{LY_9},
#{LY_10},
#{LY_11},
#{LY_12}
) </insert> <select id="callRevenue" parameterMap="fMap" statementType="CALLABLE" >
CALL PRO_REVENUE_SI(?,?,?,?,?,?,?,?,?,?,?,?,?)
</select> <!-- l_p_cd in Varchar2,
l_c_cd in Varchar2,
l_prod_type in Varchar2,
l_identity_type in Varchar2,
l_industry_type_id in Varchar2, l_p_id in Varchar2,
l_c_id in Varchar2,
l_region_name in Varchar2,
l_industry_code in Varchar2,
l_industry_name in Varchar2,
l_par_industry_id in Varchar2,
l_industry_grade in Varchar2,
return_val out Varchar2
) re --> <parameterMap type="java.util.Map" id="fMap">
<parameter property="l_p_cd" mode="IN" jdbcType="VARCHAR"/>
<parameter property="l_c_cd" mode="IN" jdbcType="VARCHAR"/>
<parameter property="l_prod_type" mode="IN" jdbcType="VARCHAR"/>
<parameter property="l_identity_type" mode="IN" jdbcType="VARCHAR"/>
<parameter property="l_industry_type_id" mode="IN" jdbcType="VARCHAR"/>
<parameter property="l_p_id" mode="IN" jdbcType="VARCHAR"/>
<parameter property="l_c_id" mode="IN" jdbcType="VARCHAR"/>
<parameter property="l_region_name" mode="IN" jdbcType="VARCHAR"/>
<parameter property="l_industry_code" mode="IN" jdbcType="VARCHAR"/>
<parameter property="l_industry_name" mode="IN" jdbcType="VARCHAR"/>
<parameter property="l_par_industry_id" mode="IN" jdbcType="VARCHAR"/>
<parameter property="l_industry_grade" mode="IN" jdbcType="VARCHAR"/>
<parameter property="return_val" mode="OUT" jdbcType="VARCHAR"/>
</parameterMap> </mapper>
mybatis xml <choose>标签使用的更多相关文章
- MyBatis:choose标签的用法
<!-- 4.2 choose用法 需求: 在已有的sys_user表中,除了主键id外,我们认为user_name也是唯一的, 所有的用户名都不可以重复.现在进行如下查询:当参数id有值的时候 ...
- MyBatis动态SQL之一使用 if 标签和 choose标签
bootstrap react https://segmentfault.com/a/1190000010383464 xml 中 < 转义 to thi tha <if test=&qu ...
- mybatis choose标签的使用
MyBatis 提供了 choose 元素.if标签是与(and)的关系,而 choose 是或(or)的关系. choose标签是按顺序判断其内部when标签中的test条件出否成立,如果有一个成立 ...
- mybatis:choose when otherwise标签
choose标签是按顺序判断其内部when标签中的test条件是否成立,如果有一个成立,则 choose 结束. 当 choose 中所有 when 的条件都不满则时,则执行 otherwise 中的 ...
- 9.mybatis动态SQL标签的用法
mybatis动态SQL标签的用法 动态 SQL MyBatis 的强大特性之一便是它的动态 SQL.如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句有多么 ...
- Mybatis xml mapper 特殊写法总结
项目告一段落,业务代码也写得差不多了,框架仍然用的是 ssm ,为了省去单表数据库操作的代码编写,继续用 mybatis generator 生成单表对应的实体类.dao层映射关联及配置文件,私下还尝 ...
- mybatis使用<choose> <when>
一.需求 后台使用orcale数据库,mybatis做持久层,前台搜索功能,根据类型搜索,但是数据库中没有类型字段, 所以需要在where条件语句中进行判断,当type == x1 时和type == ...
- Java-MyBatis:MyBatis XML 文件
ylbtech-Java-MyBatis:MyBatis XML 文件 1.返回顶部 1. Mapper XML 文件 MyBatis 的真正强大在于它的映射语句,也是它的魔力所在.由于它的异常强大, ...
- MyBatis从入门到精通(二):MyBatis XML方式的基本用法之Select
最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 1. 明确需求 书中提到的需求是一个基 ...
随机推荐
- SVM: 用kernels(核函数)来定义新的features,避免使用多项式,高斯kernel
应用kernels来进行非线性分类 非线性分类:是否存在好的features的选择(而不是多项式)--f1,f2,f3.... 上图是一个非线性分类的问题,前面讲过,我们可以应用多项式(feature ...
- new char()与new char[]区别
char *pc = new char(15); //开辟一个内存单元,并用括号里的初始化(用15来初始化你定义的指针所指向的那个char)char *pc = new char[15]; //开辟一 ...
- getchar()函数举例
#include<stdio.h>void main(){ char ch; ch=getchar(); printf("%c",ch);}
- 三.cron计划任务
• 用途:按照设置的时间间隔为用户反复执行某一项固 定的系统任务 • 软件包:cronie.crontabs • 系统服务:crond • 日志文件:/var/log/crond • 使用 cro ...
- 在运维中的shell经验总结
来自良许Linux公众号 编写 脚本开头部分应有脚本功能说明.参数使用说明.作者姓名.创建/修改日期.版本信息,格式为: 脚本编写时,注意格式对齐,如所有的循环或者判断语句前后的语句进行对齐,以及ca ...
- python-图像目标监测(1)识别答题卡
# -*- coding: utf-8 -*- """ Created on Thu Dec 20 16:05:10 2018 @author: leizhen.liu ...
- 在Modelsim中使用dsp 48e进行仿真
在Modelsim中使用DSP 48E仿真时,需要用到glbl模块,它的调用方法如下所示: vlog -incr GND.v VCC.v FDRE.v DSP48E.vvlog -incr glbl. ...
- linux 日志写入到指定文件中
php /data/xxx/aaa.php > test.log 2>&1 >覆盖, >>追加 2>&1 表示不仅命令行正常的输出保存到test. ...
- ubuntu18.04 安装UHD+GNU Radio
参考链接: ubuntu16.04下安装uhd与gnuradio:https://blog.csdn.net/qq_37748396/article/details/80339366 GNU Radi ...
- ROS里程计的学习
采用增量式编码器来实现odometry的计算,首先采用编码器对脉冲进行采样实现左右轮运动状态的获取,然后再利用增量式测程法得到机器人车体当前坐标系的位姿. 增量式测量法是使用从编码器采样到的数据并依据 ...