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. @Resource注解

    原文地址:http://blog.sina.com.cn/s/blog_a795a96f01016if1.html   @Resource 注解被用来激活一个命名资源(named resource)的 ...

  2. tagName和nodeName的区别

      首先介绍DOM里常见的三种节点类型(总共有12种,如docment):元素节点,属性节点以及文本节点,例如<h2 class="title">head</h2 ...

  3. html之input系列标签

    input属性太多,我这里仅列出几个我喜欢的吧. disabled:首次加载时禁用此元素 checked:首次加载时选中此元素 form:输入字段所属的一个或多个表单 hieght:定义input字段 ...

  4. MySQL 利用SQL线程对Binlog操作(转)

    背景: 对于MySQL的binlog的查看都是用其自带的工具mysqlbinlog进行操作的,其实还有另一个方法来操作binlog,就是Replication中的SQL线程去操作binlog,其实bi ...

  5. ORA-27101:shared memory realm does not exist的问题

    ORA-27101:shared memory realm does not exist的问题 登陆SQLPlus时出现: ORA-01034:ORACLE not avaiable ORA-2710 ...

  6. Windows命令行查看文件的MD5

    certutil -hashfile D:\apache-tomcat-7.0.68-windows-x64.zip  MD5certutil -hashfile D:\apache-tomcat-7 ...

  7. PEM文件格式详细解析

    PEM文件格式存档 Author:Roson sun sunxiao@tomonline-inc.com Time:2006-4-11 1.  描述: Openssl使用PEM(RFC 1421-14 ...

  8. IOS开发-UI基础-视图

    //------------------------------UIWindow--------------------------// 1.UIWindow:是 UIView 的子类,用于管理.协调 ...

  9. Maven 依赖管理

    1  概念介绍 之前我们说过,maven 坐标能够确定一个项目.换句话说,我们可以用它来解决依赖关系.在 POM 中,依赖关系是在 dependencies部分中定义的.在上面的 POM 例子中,我们 ...

  10. IIS SMTP status codes

    Here are the meaning of SMTP status codes. Status Code Description 211 System status, or system help ...