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. 明确需求 书中提到的需求是一个基 ...
随机推荐
- 结构型模式(一) 适配器模式(Adapter)
一.动机(Motivation) 在软件系统中,由于应用环境的变化,常常需要将"一些现存的对象"放在新的环境中应用,但是新环境要求的接口是这些现存对象所不满足的. 如何应对这种&q ...
- 单片机开发之C语言编程基本规范
为了提高源程序的质量和可维护性,从而最终提高软件产品生产力,特编写此规范.本标准规定了程序设计人员进行程序设计时必须遵循的规范.本规范主要针对单片机编程语言和08编译器而言,包括排版.注释.命名.变量 ...
- [React] Use the React Effect Hook in Function Components
Similar to the State Hook, the Effect Hook is “first-class” in React and handy for performing side e ...
- SP10707 COT2 - Count on a tree II 莫队上树
题意:求一条链 \((u,v)\) 上不同的颜色数. 我们可以求出树的出栈入栈序(or 括号序?我也不确定). 图(from attack) 然后有一个很优美的性质: 设点 \(u\) 的入栈时间为 ...
- C# mysql 处理 事务 回滚 提交
MySqlConnection myCon; void iniMysql() { //连接数据库 myCon = new MySqlConnection("server=127.0.0.1; ...
- YAML_15 include and roles
在编写playbook的时候随着项目越来越大,playbook越来越复杂.可以把一些play.task 或 handler放到其他文件中,通过包含进来是一个不错的选择. roles像是加强版的incl ...
- ASM磁盘组的监控
ASM磁盘组的监控可以使用oracle数据库查询,需要使用到的是sql语句和oracle数据库的相关操作. 还可以使用命令行进行查询,然后用awk进行文本拆分,拿到需要的值.这个需要使用到的是sudo ...
- fft相关的复习
任意长度卷积 CZT 就是一波推导 \[ \begin{aligned} b_i &= \sum_{j=0}^{n-1} \omega^{ij}a_j \\ &= \sum_{j=0} ...
- 2017.10.5 国庆清北 D5T1 拼不出的数
题目描述 3 个元素的集合{5,1,2}的所有子集的和分别是0,1,2,3,5,6,7,8.发现最小的不能由该集合子集拼出的数字是4. 现在给你一个n个元素的集合,问你最小的不能由该集合子集拼出的数字 ...
- Linux安装php yaml扩展
1.首先得安装libyamlgit clone https://github.com/yaml/libyaml./bootstrap ./configure make make install 2.安 ...