Oracle中的单行函数

1 字符函数

UPPER()--将字符串转换为大写

SELECT UPPER('abc') FROM dual;

LOWER()-将字符串转换为小写

SELECT LOWER('ABC') FROM dual;

INITCAP()-首字母大写,其它字母小写.

SELECT INITCAP('hello') FROM dual;

REPLACE()-将指定的字符/字符串替换

SELECT REPLACE('abcd efg','cd','XXX') FROM dual;

LENGTH()-获取字符串的长度

SELECT LENGTH('hello world') FROM dual;

SUBSTR()字符串截取

SELECT SUBSTR('abcdef',0,3) FROM dual;

字符串截取(Oracle中下标都是从1开始,如果指定为0则也会默认为1)

l 从指定位置截取到结尾

l 截取部分的字符串

截取前三位:

SELECT SUBSTR(‘abcdefg’,0,3) FROM dual;

截取后三位:

SELECT SUBSTR(‘abcdefg’,LENGTH(‘abcdefg’)-2) FROM dual;

SELECT SUBSTR(‘abcdefg’,-3) FROM dual;

ASCII()将字符转换为ASCII码

SELECT ASCII(‘A’) FROM dual;

CHR()将ASCII码转换为字符

SELECT CHR(100) FROM dual;

LTRIM()/RTRIM()/TRIM去掉左/右/所有空格

SELECT LTRIM('    AAA  ')  FROM dual;

SELECT RTRIM('    AAA  ')  FROM dual;

SELECT TRIM('    AAA  ')  FROM dual;

LPAD()/RPAD()字符串填充

SELECT LPAD('abc',10,'*') FROM dual;

SELECT RPAD('abc',10,'*') FROM dual;

SELECT RPAD(LPAD('abc',5,'*'),10,'*') FROM dual;

INSTR()字符串查找

SELECT INSTR('Hello Wold','llo') FROM dual;

CONCAT()函数 将第二个字符串附加到第一个字符串上

SELECT CONCAT('Hello',' World') FROM dual;

2 数字函数

ROUND()四舍五入函数

不保留小数:

SELECT ROUND(759.9965) FROM dual;

保留两位小数:

SELECT ROUND(759.9965,3) FROM dual;

处理整数进位:

SELECT ROUND(759.9965,-2) FROM dual;

TRUNC() 直接截取不四舍五入

SELECT TRUNC(759.9965,2) FROM dual;

SELECT TRUNC(759.9965,-2) FROM dual;

MOD() 取模(余数)函数

SELECT MOD(10,3) FROM dual;

SELECT MOD(10.5,3) FROM dual;

3 日期函数

SYSDATE:取得当前日期

修改时间格式:

ALTER SESSION SET NLS_DATE_FORMAT = ‘yyyy-mm-dd hh24:mm:ss’

日期的操作:

三天之后的日期:

SELECT SYSDATE + 3 FROM dual;

三天之前的日期:

SELECT SYSDATE -3 FROM dual;

日期操作函数:

ADD_MONTHS()

三月之后的日期:

SELECT ADD_MONTHS(SYSDATE,3) FROM dual;

三月之前的日期:

SELECT ADD_MONTHS(SYSDATE,-3) FROM dual;

MONTHS_BETWEEN()

SELECT TRUNC(MONTHS_BETWEEN(SYSDATE,TO_DATE('1987-10-18','yyyy-mm-dd'))/12) AS HIRE FROM dual;

EXTRACT()

SELECT EXTRACT(DAY FROM DATE  '2016-07-25') FROM DUAL;

LAST_DAY(x)返回包含X的月的最后一天

SELECT LAST_DAY(SYSDATE) FROM DUAL;

4 转换函数

日期格式化标志

TO_CHAR() 将日期或者数字转化为指定格式的字符串

将日期转换为字符串:

SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD HH:MI:SS') FROM DUAL;

将数字转化为字符串:

SELECT

TO_CHAR(1562456845625.4512659,  '999,999,999,999,999,999.9999999') AS FORMAT_A,

TO_CHAR(1562456845625.4512659,  '000,000,000,000,000,000.0000000') AS FORMAT_B

FROM DUAL;

TO_DATE()-将字符串变为日期形式

SELECT TO_DATE('1979/09/19','YYYY/MM/DD') FROM DUAL;

TO_NUMBER()-将字符串变为数字

SELECT TO_NUMBER('23') * TO_NUMBER('55') AS RESULT FROM DUAL;

5 通用函数

NVL(x,value) 如果x为空,则返回value,否则返回x

SELECT NVL(NULL,'ABC') FROM DUAL;

SELECT NVL('HELLO','ABC') FROM DUAL;

NVL2(x,value1,value2) x非空则返回value1否则返回value2

SELECT NVL2(NULL,'ABC','DEF') FROM DUAL;

SELECT NVL2('F','ABC','DEF') FROM DUAL;

NULLIF()

SELECT NULLIF(1,1) FROM DUAL;

SELECT NULLIF(7,2) FROM DUAL;

DECODE()-类似于JAVA中的switc-case语句

找到:

SELECT DECODE(65,

60,'BAD',

65,'GOOD',

90,'EXCELLENT'

) FROM DUAL;

找不到:

SELECT DECODE(30,

60,'BAD',

65,'GOOD',

90,'EXCELLENT'

) FROM DUAL;

找不到时可以设置默认值:

SELECT DECODE(30,

60,'BAD',

65,'GOOD',

90,'EXCELLENT',

'UNKNOWN'

) FROM DUAL;

CASE-WHEN-THEN: -类似于JAVA中的switch语句

值找到:

SELECT

CASE 65

WHEN 60 THEN 'BAD'

WHEN 65 THEN 'GOOD'

WHEN 90 THEN 'EXCELLENT'

ELSE

'UNKNOWN'

END

FROM DUAL;

值找不到:

SELECT

CASE 99

WHEN 60 THEN 'BAD'

WHEN 65 THEN 'GOOD'

WHEN 90 THEN 'EXCELLENT'

ELSE

'UNKNOWN'

END

FROM DUAL;

COALESCE()- 依次判断参数是否为空,直到第一个非空值出现

SELECT COALESCE(NULL,33,NULL) FROM DUAL;

SELECT COALESCE(NULL,NULL,99) FROM DUAL;

SELECT COALESCE(NULL,NULL,NULL) FROM DUAL;

Oracle中的单行函数的更多相关文章

  1. Oracle数据库之六 单行函数

    六.单行函数 6.1.认识单行函数 ​ 函数就是和 Java 语言之中的方法的功能是一样的,都是为了完成某些特定操作的功能支持,而在 Oracle 数据库里面也包含了大量的单行函数,这些函数掌握了以后 ...

  2. Oracle中 Instr 这个函数

    http://www.jb51.net/article/42369.htm sql :charindex('字符串',字段)>0 charindex('administrator',MUserI ...

  3. 创建类似于Oracle中decode的函数

    -- 创建类似于Oracle中decode的函数create or replace function decode(variadic p_decode_list text[])returns text ...

  4. Oracle中的substr()函数 详解及应用

    注:本文来源于<Oracle中的substr()函数 详解及应用> 1)substr函数格式   (俗称:字符截取函数) 格式1: substr(string string, int a, ...

  5. MySQL之实现Oracle中的rank()函数的功能

      假设表格为student, 数据如下:   我们要在MySQL中实现Oracle中的rank()函数功能,即组内排序,具体来说: 就是对student表中按照课程(course)对学生(name) ...

  6. oracle中的trim()函数详解

    1.先看一下Oracle TRIM函数的完整语法描述 TRIM([ { { LEADING | TRAILING | BOTH }[ trim_character ]| trim_character} ...

  7. oracle中的greatest 函数和 least函数

    oracle中的greatest 函数和 least函数 原文地址:https://blog.csdn.net/sinat_32023305/article/details/78778596    g ...

  8. 问题:oracle nvl;结果:Oracle中的NVL函数

    Oracle中的NVL函数 (2012-11-30 13:21:43) 转载▼ 标签: nvl oracle 分类: Oracle Oracle中函数以前介绍的字符串处理,日期函数,数学函数,以及转换 ...

  9. Oracle中的转换函数

    Oracle中的转换函数有三个,分别为to_char(),to_date(),to_number() 1.to_char()的用法 格式化当前的日期时间 select sysdate,to_char( ...

随机推荐

  1. linux包之diff

    [root@84-monitor ~]# rpm -qf /usr/bin/diffdiffutils-2.8.1-28.el6.x86_64[root@84-monitor ~]# rpm -ql ...

  2. cache与负载均衡

    cache 客户端CACHE客户端CACHE,包括浏览器本身的缓存.FLASH存储等,用于存储一些临时的文件或者变化不大或无变化的数据:1.如浏览器自动将用户浏览的网页存储在用户的硬盘上,下次再浏览相 ...

  3. linux包之iproute之ss命令

    概述 [root@localhost ~]# rpm -qa|grep iprouteiproute-2.6.32-31.el6.x86_64 当服务器的socket连接数量变得非常大时,无论是使用n ...

  4. js跳转到页面中指定的hash

    location.hash = "#filter_moreClue";

  5. objective-c 随便记记

    1.tableview滚动到某一位置 [tableViewShow setContentOffset:CGPointMake(0, 0) animated:YES]; //解决tableView分割线 ...

  6. ios外包公司—北京动点软件分享:IOS工程自动打包并发布脚本实现

    前言 IOS的开发过程中,当需要给测试人员发布测试包的时候,直接使用xcode来做的效率是非常低下的.尤其是当有一点小改动需要重新出包时,那简直是个折磨的人的工作.通过一番研究后,遂决定写一系列脚本, ...

  7. uboot 环境变量

    从bootm 命令讲起 1 找到linux的内核入口 Bootm命令通过读取uImage的头部0×40字节的信息,将uImage定位到正确的地址,同时找到linux的内核入口地址. 这个地方就涉及到u ...

  8. (四)java程序基本组成

    一个基本的java程序一般包括几个部分,分别是程序所在的包名.程序中用到的其他包的路径.程序的类.类中的方法.变量和字面量. package demo; import java.util.Date; ...

  9. window下部署php_redis扩展

    关于redis的一些特性就不多说了,可以到这里去了解,or click me. 另外,给出一个redis中文API,点我. 首先要下载一个redis软件,可以到官网下载. 注意:官网提供的版本比较高级 ...

  10. Javascript之UI线程与性能优化

    在浏览器中,Javascript执行与UI更新是发生在同一个进程(浏览器UI线程)中的.UI线程的工作基于一个简单的队列系统,任务会被保存到队列中直到进程空闲时被提取出来执行.所以Javascript ...