oracle之在mybatis中常用的函数

1字符串拼接 ||

eg: D.PROVINCE_NAME  || D.ADDRESS AS ADDRESS,

2使用oralce自定义的函数

 SELECT 
FN_GET_AGE_STR(A.DATE_BIRTH,SYSDATE) AS AGE,

3将多条数据拼接在一起,多列转一行
LISTAGG WITHIN GROUP

    ( SELECT LISTAGG (NAME, ';' ) WITHIN GROUP ( ORDER BY TYPE )
        FROM 数据库分区名称.xxxxxx
        WHERE xxxx_ID = A.ID ) AS "name",

4使用union all 排序 需要嵌套

SELECT* FROM  (
SELECT XXXXX FROM A
  UNION ALL
  SELECT XXXXX FROM B
) F  ORDER BY F.XXX

5 if else函数:case when then

 (CASE WHEN  B.ORDER_TYPE=1 THEN'进货' WHEN B.ORDER_TYPE=2 THEN'退货' END) AS type,

6格式转换

 TO_NUMBER('0.00') ,--转为Number类型 
 
 ADD_MONTHS(#{endMonth},1) --月份+1
 
 TO_CHAR  --转为字符串
 
 TO_DATE(XXXX,'yyyy-mm-dd')

7 REPLACE替换

REPLACE(USE_QUANTITY,'.00','')

8 SUBSTR截取字符串

substr(string string, int a, int b);
 --a 截取字符串的开始位置(注:当a等于0或1时,都是从第一位开始截取)
 --b 要截取的字符串的长度
 
 substr(string string, int a) 
 --a 可以理解为从第a个字符开始截取后面所有的字符串
 

9大小写转换

lower:大写字符转化成小写的函数 upper:小写字符转化成大写的函数

10多元表达式

NVL(QUANTITY,0)

11字符查找

instr( string1, string2 )    // instr(源字符串, 目标字符串)
 select instr('helloworld','lo') from dual; --返回结果:4    
 -- 即“lo”同时出现,第一个字母“l”出现的位置

12 排名

rank over (partition by xxx字段 order by xxx字段)
dense_rank()  over (partition by xxx字段 order by xxx字段)
row_number() over(partition by xxx字段 order by xxx字段)
区别 第一种1 2 2 4 5 第二种1 2 2 3 4 第三种强制 1 2 3 4 5 
partition by 分类 相当于排序的首要条件
详见:https://blog.csdn.net/weixin_34100227/article/details/93582329
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值