SQL标签用法

  1. 如果属性不为空,则将条件根据prepend拼接
<isnotempty property="sourcefrom" prepend="and">
		m_c.sourcefrom = #sourcefrom#
</isnotempty>
  1. <![CDATA[ ]]>:特殊字符不会被转义,在CDATA内部的所有内容都会被解析器忽略 但 等这些标签都不会被解析
<![cdata[
		m_c.channelname like '%'||#channelname#||'%'
]]> 
  1. like 模糊查询 _ :表示单个字符
    %:表示0及以上各个字符
    oracle模糊查询,防止SQL注入
m_c.channelname like '%'||#channelname#||'%'
  1. ||:oracle中用于拼接
m_g.id||'00'
  1. TO_NUMBER():oracle中常用的类型转换函数之一,将字符串转换为数值型格式
    TO_CHAR():将日期转换成一定格式的字符类型
to_number(m_x4.id)
to_char((sysdate),'yyyymmdd')
  1. where 动态SQL,根据动态条件决定是否拼接
<dynamic prepend="where">
	</dynamic>
  1. property:指定比较的属性名称
    comparevalue:表示要比较的参数
    prepend:表示追加条件
<isequal property="bjtype" comparevalue="1" prepend="and" >
	</isequal>
  1. 递归查询
    START WITH:根节点的限定语句
    CONNECT BY PRIOR:连接条件,查找到树中其他节点接着又作为根节点继续递归
select m_z.id from eqp_area m_z start with m_z.parent = #xzqyid# connect by prior m_z.id=m_z.parent
  1. exists:强调是否有返回结果集,有则为真
    not exists:
  2. DECODE():将查询结果翻译成其他值
    一个参数:DECODE(条件,值,翻译值1,翻译值2)
    两个参数:DECODE(条件,值1,翻译值1,值2,翻译值2,…缺省值)
DECODE(M_AA.ALL_NUM,0,100,round((ALL_NORMAL*100/M_AA.ALL_NUM), 2))
  1. ROUND():用于把数值字段舍入为指定的小数位数
round((ALL_NORMAL*100/M_AA.ALL_NUM), 2)
  1. LEFT JION 表名 ON:左外连接查询(左全)
  2. 满足条件就拼接
<if test=""> </if>
  1. 只选择一个满足条件的拼接
<choose>
		<when test = "null != channelState and 'A'.toString() == channelState">
			<![CDATA[ AND M_B.CHANNELSTATE = 'A' ]]>
		</when>
		<when test = "null != channelState and '' != channelState and 'A'.toString() != channelState">
			<![CDATA[ AND M_B.CHANNELSTATE != 'A' ]]>
		</when>
</choose>
  1. prefix:在trim标签内的sql语句上加上前缀
    suffix:在trim标签内的sql语句上加上后缀
    prefixOverrides:指定去除多余的前缀内容
    suffixOverrides:指定去除多余的后缀内容
<trim prefix="WHERE" suffixOverrides="AND">
		<if test="limitStart != null and '' != limitStart" > 
			<![CDATA[ M_C.RO > #{limitStart,jdbcType=INTEGER} AND ]]>
		</if>
	</trim>
  1. ROWNUM
    rownum:伪列,
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值