Oracle中的单行函数
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中的单行函数的更多相关文章
- Oracle数据库之六 单行函数
六.单行函数 6.1.认识单行函数 函数就是和 Java 语言之中的方法的功能是一样的,都是为了完成某些特定操作的功能支持,而在 Oracle 数据库里面也包含了大量的单行函数,这些函数掌握了以后 ...
- Oracle中 Instr 这个函数
http://www.jb51.net/article/42369.htm sql :charindex('字符串',字段)>0 charindex('administrator',MUserI ...
- 创建类似于Oracle中decode的函数
-- 创建类似于Oracle中decode的函数create or replace function decode(variadic p_decode_list text[])returns text ...
- Oracle中的substr()函数 详解及应用
注:本文来源于<Oracle中的substr()函数 详解及应用> 1)substr函数格式 (俗称:字符截取函数) 格式1: substr(string string, int a, ...
- MySQL之实现Oracle中的rank()函数的功能
假设表格为student, 数据如下: 我们要在MySQL中实现Oracle中的rank()函数功能,即组内排序,具体来说: 就是对student表中按照课程(course)对学生(name) ...
- oracle中的trim()函数详解
1.先看一下Oracle TRIM函数的完整语法描述 TRIM([ { { LEADING | TRAILING | BOTH }[ trim_character ]| trim_character} ...
- oracle中的greatest 函数和 least函数
oracle中的greatest 函数和 least函数 原文地址:https://blog.csdn.net/sinat_32023305/article/details/78778596 g ...
- 问题:oracle nvl;结果:Oracle中的NVL函数
Oracle中的NVL函数 (2012-11-30 13:21:43) 转载▼ 标签: nvl oracle 分类: Oracle Oracle中函数以前介绍的字符串处理,日期函数,数学函数,以及转换 ...
- Oracle中的转换函数
Oracle中的转换函数有三个,分别为to_char(),to_date(),to_number() 1.to_char()的用法 格式化当前的日期时间 select sysdate,to_char( ...
随机推荐
- C#中的预处理指令
C#中的预处理指令 作为预处理中的一对:#region name ,#endregion可能是大家使用得最多的,我也常用它来进行代码分块,在一个比较长的cs文件中,这么做确实是一件可以让你使代码更清晰 ...
- Python_day8_面向对象(多态、成员修饰符、类中特殊方法、对象边缘知识)、异常处理之篇
一.面向对象之多态 1.多态:简而言子就是多种形态或多种类型 python中不支持多态也用不到多态,多态的概念是应用与java/C#中指定传参的数据类型, java多态传参:必须是传参数的数据类型或传 ...
- linux工具之putty
http://blog.csdn.net/qk_zhu/article/details/6272247 对于putty,似乎很多人只知道下载回来之后,双击,输入ip,然后登陆使用.其实putty有很多 ...
- OpenJudge计算概论-扩号匹配问题【这个用到了栈的思想】
/*====================================================================== 扩号匹配问题 总时间限制: 1000ms 内存限制: ...
- 使用面向对象思想处理cookie
实例:使用面向对象思想处理cookie如果读者对cookie 不熟悉,可以在第七章学习它的使用方法,虽然在那里创建了几个通用函数用于cookie 的处理,但这些函数彼此分离,没有体现出是一个整体.联想 ...
- Android视录视频示例
这几天需要搞一个Android视频通话功能,从最简单的视频录制开始,网上例子大多不完整.下面的示例参考过别人的代码,还是拿出来给需要的朋友分享下. Activity类:VideoActivity pa ...
- 服务器安全狗,支持Linux/windows
安全狗: www.safedog.cn 防DDOS sql注入检测
- jmeter制造安全证书
对安全性有要求的网站一般使用https来加密传输的请求和响应.https离不开证书,关于证书不在多说.Apache的HttpClient支持https, 下面是官方的样例程序,程序中使用了my.sto ...
- [java] 40个Java多线程问题总结
40个问题汇总 1.多线程有什么用? 一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡.所谓"知其然知其所以然","会用 ...
- css禁用鼠标点击事件
css禁用鼠标点击事件 .disabled { pointer-events: none; } <div class="main-container disabled"> ...