随笔全个人原创,转载请申明作者

1.3 Oracle数据库学习教程-单行函数

Oracle数据库学习教程

单行函数

1.字符函数

  1. 转小写:lower("") select lower("HeLLo")
  2. 转大写:upper("")
  3. 首字母大写:initcap("")
  4. 拼接字符串:concat("1","2")
  5. 截取字符串:substr("12345",2) -->从第二位截取到结束
  6. 获取长度:length(字符数)/lengthb(字节数)
  7. 找子串,返回位置:instr("hello","ll")
  8. 左填充:lpad("hello",8,'#')-->"hello###",右填充rpad
  9. 去掉字符:trim('H' from 'Hello worldH') --> "ello world"
    1. 只是去掉头尾,如'H1H2H3H'-->'1H2H3'
  10. 替换:replace('hello','l','t') ---> "hetto"

2. 数值函数

  1. round:四舍五入 round(45.926,2) 45.93
  2. trunc:截断 trunc(45.926,2) 45.92
  3. mod:求余 mod(1600,300) 100

3.时间/日期函数

to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')
日期可以相减
不能相加,但是能加数字

months_between(sysdate,hiredate):两个日期值相差的月数
add_mouths():在某日期上加上多少个月
last_day():日期所在月的最后一天
next_day(sysdate, '星期一'):指定日期的下一个日期(这里是指星期一)

按日期进行四舍五入和截断
round(sysdate,'month')
trunc(sysdate,'month')

4.转换函数

  1. 隐式转换:

    1. select * from emp where hiredate = '17-11 月-81'
      20211005195504
  2. 显式转换:

    1. 比如to_char()函数
    2. 还有to_number(),to_date()

这个是to_char常用格式:
20211005195546

select to_char(sal, 'L9,999.99') from emp;
SQL> select to_number('¥2,975.00', 'L9,999.99') 转成数字 from dual;
select to_date('2015-05-11 15:17:06 今天是 星期一', 'yyyy-mm-dd hh24:mi:ss "今天是" day') from dual
优先选择显式转换,可以省去Oracle解析的时间

5.通用函数

这些函数适用于任何数据类型,包括NULL

  • NVL(a,b) 如果a=null,返回b
  • NVL2(a,b,c) 如果a=null,返回c,否则返回b
  • NULLIF(a,b) 如果a=b,返回null,否则返回a
  • COALESCE(a,b...n) 找第一个不为空的值

6.条件表达式

  1. CASE..WHEN...THEN..END
    case 列名 when 条件 then 命令 end
  2. DECODE()
    decode(列名,[条件1,表达式1]...,默认表达式)
posted @ 2021-10-05 20:49  许小仙  阅读(54)  评论(0编辑  收藏  举报