主要是对项目中用过的 oracle 函数进行总结,并做出目录,方便后续项目是快速查找,提高效率。

01.Round (数值的四舍五入)

描述:传回一个数值,该数值是按照指定的小数位元数进行四舍五入运算的结果。

SELECT Round(Number,[Decimal_Places])FROM Dual;

param:
Number:欲处理的数值
Decimal_Places:四舍五入,小数取几位(预设为0)
Sample:

SELECT Round(123.456,1)FROM Dual;

output:123.5

SELECT Round(123.4567,3)FROM Dual;

output:123.458

02.Case ...When... (oracle 的if...else...)

case XX属性(可不填) when XX属性判断 then XX else XX end 你要赋值的表属性
Sample:
CASE lanage
WHEN lanage='java' then
''
else
''
end code;
case ... when 类似与程序语言中的 if(){}else{}

03.Nvl (数据表字段的判空处理)

Nvl(string, replace_with)
param:
string:欲处理字符串
replace_with:要替换的字符串
如果string为NULL,则NVL函数返回replace_with的值,否则返回string1的值,如果两个参数都为NULL ,则返回NULL
可以用于字段判空后的处理操作,比如教室职称,如果字段为空,都默认为普通。
Sample:

select nvl(t.title,'普通') from teacher t;

04.Decode (字段名称的转换)

decode(XX属性,XX属性值,'要转译为的字符串')函数:
举例:

Select decode (t.title,'','普通','','高级','其他') from teacher
这个函数在项目中用的比较多,与上面的case_when..其实有点相似

05.树递归查询

select ...
from ....
start with ....[开始递归遍历的起点]
connect by prior [级联关系,比如 下级.parentid = 上级.id]
当前表字段=级联表字段 start with与connect by prior语句完成递归记录,形成一棵树形结构,通常可以在具有层次结构的表中使用。
(select c.swjg_dm
from dm_gy_swjg c
start with c.swjg_dm = ''
connect by prior c.swjg_dm = c.sjswjg_dm)

06.Trunc (截取日期和数字处理)

其具体的语法格式如下:

1)Trunc(Date[,Fmt])
Trunc(To_Date('24-Nov-199908:00Pm'),'Dd-Mon-YyyyHh:MiAm')='24-Nov-199912:00:00Am'
2)Trunc(ForNumber)
--Trunc函数返回处理后的数值,其工作机制与Round函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理,而统统截去。
Trunc(89.985,2)=89.98
Trunc(89.985)=89
Trunc(89.985,-1)=80
如果我们不需要从具体的表来取得

表中数据,而是单纯地为了得到一些我们想得到的信息,并要通过Select完成时,就要借助一个对象,这个对象,就是Dual;
就是将数值型或者日期型转化为字符型。
Sample:

To_Char(Number,'格式')
To_Char(Salary,’$99,999.99’)

07.Regexp_Substr (正则表达式的匹配)

Regexp_Substr(String,Pattern,Position,Occurrence,Modifier)
__Srcstr:需要进行正则处理的字符串
__Pattern:进行匹配的正则表达式
__Position:起始位置,从第几个字符开始正则表达式匹配(默认为1)
__Occurrence:标识第几个匹配组,默认为1
__Modifier:模式('i'不区分大小写进行检索;'c'区分大小写进行检索。默认为'c'。)

Sample:

Select Regexp_Substr('17,20,23','[^,]+',1,1,'i') As Str From Dual;

08.Substr (字符串的截取)

Substr(字符串,截取开始位置,截取长度)
Substr('HelloWorld',1,1)//返回结果为'h'*0和1都是表示截取的开始位置为第一个字符
Substr('HelloWorld',2,4)//返回结果为'Ello'

09.Replace('要更改字符串','被替换掉','替换')

Sample:

SelectReplace('','','')FromDual;

output:''

10.Instr (字符串中特定字符的索引位置,从1开始)

Instr(源字符串,目标字符串,起始位置,匹配序号)
Instr函数返回要截取的字符串在源字符串中的位置。只检索一次,就是说从字符的开始到字符的结尾就结束。

Param:

Instr(String1,String2[,Start_Position[,Nth_Appearance]])
String1源字符串,要在此字符串中查找。
String2要在String1中查找的字符串.
Start_Position代表String1的哪个位置开始查找。此参数可选,如果省略默认为1.字符串索引从1开始。如果此参数为正,从左到右开始检索,如果此参数为负,从右到左检索,返回要查找的字符串在源字符串中的开始索引。
Nth_Appearance代表要查找第几次出现的String2.此参数可选,如果省略,默认为1.如果为负数系统会报错。
SelectInstr('Syranmo','s')FromDual;--返回1
SelectInstr('Syranmo','Ra')FromDual;--返回3

11.add_months (获取特定月份)

add_months(data,number)函数输入日期上加上指定的几个月返回一个新的日期;
Sample:

add_months(to_date('15-Nov-1961','d-mon-yyyy'),1) 

output:  15-Dec-1961
add_months(sysdate, -1) 返回当前日期月份-1,就是上月

Oracle 常用函数的更多相关文章

  1. Oracle常用函数

    前一段时间学习Oracle 时做的学习笔记,整理了一下,下面是分享的Oracle常用函数的部分笔记,以后还会分享其他部分的笔记,请大家批评指正. 1.Oracle 数据库中的to_date()函数的使 ...

  2. Oracle常用函数:DateDiff() 返回两个日期之间的时间间隔自定义函数

    首先在oracle中没有datediff()函数可以用以下方法在oracle中实现该函数的功能:1.利用日期间的加减运算天:ROUND(TO_NUMBER(END_DATE - START_DATE) ...

  3. oracle常用函数总结(二)

    之前也有写过“oracle常用函数总结(一)”,为了尽量找全常见oracle函数,笔者特意查找了相关资料来作为参考,下边给大家罗列出来,部分和之前有重复的,希望能帮到大家! 列举了31个函数和1个分组 ...

  4. oracle常用函数总结

    Oracle常用函数总结 ---oracle常用函数-----一.数值型常用函数----取整数--select floor(10.1) from dual;--将n四舍五入,保留小数点后m位(默认情况 ...

  5. oracle常用函数整理

    oracle常用函数整理    1.绝对值.取余.判断数值正负函数    绝对值:ABS(n)        示例: SELECT ABS(100),ABS(-100),ABS('100') FROM ...

  6. oracle常用函数积累

    --oracle常用函数积累-- --1.字符串长度:LENGTH ,语法: CONCAT(string) --示例 select LENGTH('AA_BB') from dual;--结果:5 - ...

  7. ORACLE常用函数的使用方法

    ORACLE常用函数的使用方法 1. 字符串函数 (1) length(); 获取字符长度SELECT LENGTH('中国') FROM PLATFORM_METAINFO_TABLES WHERE ...

  8. SQL操作数据——SQL组成,查询基础语法,where,Oracle常用函数等

    SQL组成 DML数据操作语言 DCL数据控制语言 DQL数据查询语言 DDL数据定义语言 查询基础语法 记录筛选 where 子句 记录筛选 where 子句 实例练习 实例练习 Select语句中 ...

  9. oracle常用函数及示例

    学习oracle也有一段时间了,发现oracle中的函数好多,对于做后台的程序猿来说,大把大把的时间还要学习很多其他的新东西,再把这些函数也都记住是不太现实的,所以总结了一下oracle中的一些常用函 ...

  10. 十、oracle 常用函数

    一.字符函数字符函数是oracle中最常用的函数,我们来看看有哪些字符函数:lower(char):将字符串转化为小写的格式.upper(char):将字符串转化为大写的格式.length(char) ...

随机推荐

  1. ORACLE 10g AWR报告设置总结

      1:查看.修改AWR报告快照数据的采样间隔.保存策略 SQL> COL DBID FOR 999999999999 SQL> COL SNAP_INTERVAL FOR A26 SQL ...

  2. Linux SendMail发送邮件失败诊断案例(三)

    一Linux服务器突然发送不出邮件,检查了很多地方都没有发现异常,检查/var/log/maillog发现如下具体信息: Apr 12 00:36:04 mylinux sendmail[4685]: ...

  3. SQL Server调优系列进阶篇(查询语句运行几个指标值监测)

    前言 上一篇我们分析了查询优化器的工作方式,其中包括:查询优化器的详细运行步骤.筛选条件分析.索引项优化等信息. 本篇我们分析在我们运行的过程中几个关键指标值的检测. 通过这些指标值来分析语句的运行问 ...

  4. js 数组删除指定元素

    Array.prototype.remove = function(obj) { for (var i = 0; i < this.length; i++) { var temp = this[ ...

  5. Win7下硬盘安装Ubuntu 12.04.3双系统

    一. 准备工作 1. 下载ubuntu镜像文件:Ubuntu-12.04.3-desktop-amd64.iso(4G及以上内存建议64位),注意这个amd并不是指amd芯片. 2. 下载硬盘分区工具 ...

  6. 烂泥:gpg加解密软件学习

    本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb. 为什么要学习gpg呢?因为要在Linux下把一个邮箱的密码加密,不让其他人看到该邮箱真 ...

  7. iOS打包Framework真机和模拟器兼容合并版本 - 详细攻略步骤

    打包Framework,测试时: 1.用模拟器打包,测试时只能跑在模拟器 2.用真机打包,测试时只能跑在真机 那么怎么做到一个版本兼容以上两种场景呢? 解决如下: 1.打开终端 2.输入   lipo ...

  8. Linux多进程编程

    进程的状态 Linux进程有7种基础状态(两种running算一种),除了traced都可以用$ps命令查看,$ps可以查看的进程状态如下,更多进程状态信息参见Linux Process VS Thr ...

  9. PowerShell命令卸载Win10内置应用

    Windows10系统预装了大批的应用,开始菜单右侧的磁贴即显示了其中的大部分,包括:人脉.日历.邮件.资讯.Xbox.Groove音乐.Camera相机.电影和电视.照片.手机助手.天气.OneNo ...

  10. [转]Oracle 分组聚合二种写法,listagg和wmsys.wm_concat

    本文转自:http://www.cnblogs.com/ycdx2001/p/3502495.html with temp as( select 'China' nation ,'Guangzhou' ...