Oracle 函数整理

 

一、字符控制函数


函数 结果
CONCAT('Hello','World') HelloWorld
SUBSTR('HelloWorld',1,5) Hello
LENGTH('HelloWorld') 10
INSTR('HelloWorld','W') 6
LPAD(salary,10,'*'):工资显示10位不足时用*补充 ******2400
RPAD(salary,10,'*') 2400******
TRIM('H' FROM 'HelloWorld') elloWorld
REPLACE('HelloWorld','H','E') EelloWorld

二、大小写控制函数


函数 结果
LOWER('HelloWorld') HELLOWORLD
UPPER('HelloWorld') helloworld
INITCAP('HelloWorld SQL') Helloworld Sql

三、数字函数


函数 结果
ROUND(四舍五入):ROUND(45.926,2) 45.93
TRUNC(截断):TRUNC(45.926,2) 45.92
MOD(求余):MOD(1600,300) 100

四、日期函数


Oracle 中的日期型数据实际含有两个值: 日期和时间(函数SYSDATE 的返回值)
      ● 在日期上加上或减去一个数字结果仍为日期。
      ● 两个日期相减返回日期之间相差的天数。(日期不允许做加法运算,无意义)
      ● 可以用数字除24来向日期中加上或减去天数。

函数 描述
MONTHS_BETWEEN 两个日期相差的天数
ADD_MONTHS 向指定日期加上若干个月
NEXT_DAY 指定日期的下一个星期*对应的日期
LAST_DAY 本月的最后一天
ROUND 日期四舍五入
TRUNC 日期截取

举例:MONTHS_BETWEEN('01-SEP-95','11-JAN-94')——> 19.6774194
ADD_MONTHS ('11-JAN-94',6) ——> '11-JUL-94'
NEXT_DAY ('01-SEP-95','FRIDAY') ——> '08-SEP-95'
LAST_DAY('01-FEB-95') ——> '28-FEB-95'

五、数据类型转化


日期格式元素与显示情况列表如下(TO_CHAR(data,'format_model)函数对日期转换时,format_model常用的属性如下):

时间格式:

举个栗子:

TO_CHAR函数对数字的转换(TO_CHAR(number,'format_model')):下面在 TO_CHAR 函数中经常使用的几种格式:

9 数字
0
$ 美元符
L 本地货币符号
' 小数点
, 千位符

举个栗子:

六、通用函数:这些函数适用于任何数据类型,同时也适用于空值


【1】NVL(expr1,expr2):将空值转化成一个已知的值,可以使用的数据类型有日期、字符、数字。函数的一般形式有:
       —  NVL(commission_pct,0)
       —  NVL(hire_date,'01-JAN-97')
       —  NVL(job_id,'No Job Yet')

【2】NVL2(expr1,expr2,expr3):expr1不为NULL,返回expr2;为NULL时,返回expr3。

【3】NULLIF(expr1,expr2):相等返回NULL,不相等返回expr1。

【4】COALESCE(expr1,expr2,......,exprn):与 NVL 相比有点在于 COALESCE 可以同时处理交替的多个值。如果第一个表达式为NULL,则返回下一个表达式,依次类推。

七、条件表达式


【1】、在 SQL 语句中使用 IF-THEN-ELSE 逻辑时,使用两种方法:
        — CASH 表达式

CASE expr WHEN comparison_expr1 THEN return_expr1
         [WHEN comparison_expr2 THEN return_expr2
          WHEN comparison_exprn THEN return_exprn
          ELSE else_expr]
END

  ☛下面使用 case 表达式的一个例子:
    

        — DECODE 函数

DECODE(col|expression, search1, result1 ,
      			   [, search2, result2,...,]
      			   [, default])

  ☛下面使用 case 表达式的一个例子:
     

八、分组函数


常用的分组函数如下(经常使用就不过多解释了):GROUP BY、MAX、MIN、AVG、COUNT、SUM等。

就说一个知识点吧:条件判断里面包含组函数的必须使用 HVING 不能使用 WHERE:


----关注公众号,获取更多内容----

posted @ 2020-11-20 09:56  Java程序员进阶  阅读(63)  评论(0编辑  收藏  举报