--函数及关键字--
1.trim,ltrim,rtrim 去除字符,无指定默认去除空格
SELECT TRIM('a' FROM 'aafhfhaaaaaaaa'),
LTRIM('aafhfhaaaaaaaa','a'),
RTRIM('aafhfhaaaaaaaa','a')
FROM dual fhfh, fhfhaaaaaaaa,aafhfh
---以前一直以为只能去除空格,去除某字符都用replace函数替换

2.连接字符串函数:CONCAT函数和||

concat包含两个参数,多个字符串连接需套用
concat(1,2) 12

3.UPPER,LOWER,INITCAP函数:可以将字符串转换为全大写,全小写,以及首字母大写(单词之间用空格分开)

4.LENGTH函数:获取字符串的字符长度.

5.LPAD,RPAD函数:补位函数,当要显示的内容长度不足给定长度时,在左面或右面补充若干给定字符以达到长度。若实际显示的内容超过显示长度时,会截取实际显示内容。
select lpad('123',5,'0')|| rpad('54321',3,'0') from dual ---00123543

6.四舍五入,截取,
floor:取整 floor(1234.5678)--1234
round:四舍五入 round(1234.5678,-2)--1200 第二个参数为正向小数点后四舍五入,为负向前,0或没有取整四舍五入
ceil(1234.5678)--1235 整数返回自己,小数返回大于他自己的最小整数(取整加1)
trunc(1234.5678,-2)trunc(sysdate,'mm') --1200,20170201 对数字根据第二参数截取,正后负前,对时间按第二参数取时间,若是MM(月)取到月初第一天,其他同理
substr(‘12345678’,-5,3)--456 截取第一个参数字符串,从下标为第二个参数开始,以第三个参数为个数取,若第二个为负数则从最后一个开始向前数对应的个数,第二个为0和1都是

从第一个开始,第三个参数可省略
他的兄弟:substrb,substrc,substr2,substr4
7.获取下标:instr(a,b,c,d)从字符串a中第c位置开始找字符串b,出现的第d次获取这个下标
他的兄弟:
SELECT INSTR('无言独上西楼','上') FROM dual; --4
SELECT INSTRB('无言独上西楼','上') FROM dual; --7 汉字占位多
SELECT INSTRC('无言独上西楼','上') FROM dual; --4
SELECT INSTR2('无言独上西楼','上') FROM dual; --4
SELECT INSTR4('无言独上西楼','上') FROM dual; --4
8.常用类型转换函数:to_char(),to_date(),to_number()
SELECT to_char(SYSDATE,'yyyymmdd') ,to_date('20150304','yyyymmdd'),to_number('00002001') FROM dual
--20160403 2015/3/4 2001
9.时间函数相关:
sysdate 系统当前时间
yyyy mm dd hh mi ss/yyyy mm dd hh24 mi ss 年月日时分秒
ssss 午夜后的秒
SELECT to_char(SYSDATE,'yyyy'),to_char(SYSDATE,'yyy'),to_char(SYSDATE,'yy'),to_char(SYSDATE,'y') FROM dual 2015 015 15 5

Q 季度
ww 一年中的第几周
w 一月中的第几周
ddd 一年中的第几天
dd 一月中的第几天
d 一周中的第几天
CC--世纪

last_day(A):获取时间A对应月份的最后一天,时分秒不变
next_day(A,3):A本周的下一周的第三天,周日为第一天
add_months(A,1):在时间A的基础上偏移一个月
months_between(A,B):两个时间的月份差

10.最小值,最大值
min(A):字段A中的最小值
max(A):字段A中的最大值

LEAST(a,b,c....):取参数中最小值
GREATEST(a,b,c....):取参数中最大值

11.空值函数
空 null 和‘’这里有说null是空,‘’是长度为0的字符串(占位),其实我感觉数据库对于‘’的处理就是当null处理的,‘’中间是放字符串的,但一个字符串插入到date类型中就会报

错,如果是个空字符串(‘’)就能正常插入,而且符合 is null 条件,所以我感觉这里讨论他们的区别是没意义的,这里只针对oracle
非空 is not null ,length(A)>0 .......
注:length(A)=0 不能作为空的判断条件 length(null) 是空 除了处理空函数其他函数同理,数学运算空加减乘除任何数为空

NVL(a,b):如果a为空则取b,不为空取a
NVL2(a,b,c):如果a为空取c,不为空取b
nullif(a,b):a=b 返回空,不等返回a

12.数学函数
abs(a):a的绝对值
power(a,b):a的b次方
sqrt(a):a的平方根
mode(a,b)a除b的余数
13.统计函数
count(A)计数
sum(a)求和
avg(A)平均数
sign(A)A小于0为-1,等于0为0,大于0为1

GROUP BY A :按A值分组
HAVING count(1)>2 :进行分组统计后的条件筛选,比如按家庭分组,每家养猪超过2只 的展示出来

13.查询交并差集
并集
union 和union all 前面踢重,后面全展示,不踢重
select a from t1
union
select b from t2
交集
intersect
写法同上
差集 :第一个查询中不同于第二个查询结果的数据
写法同上

14.模糊查询 :like
%:字符串,长度任意包括0
_:一个字符

如:like ‘%aa%bb__cc%’ 按顺序包含aabbcc且bb和cc间必有2个字符的字符

15.decode(a,b,c,d,e....,g,h,i):如果a等于b取c,否则如果等于d取e..以此类推..
如果最后一个和倒数第二个是因果关系(否则如果等于h取i)则除了括号中列举外的就取空,decode(1,2,3)=null
如果倒数第二个和倒数第三个是因果关系则除了前面指定的外取最后一个,decode(1,2,3,4)=4

16.字符与十进制数转换函数

SELECT ASCII('A'),CHR(65) FROM dual --65 A

17.替换 replace
create or replace view v_test 创建一个名叫v_test的视图,如果已存在将之替换
函数:select replace(a,b,c) 将字符串a中包含字符串b的部分替换为字符串c

20.将一条记录多条展示
如 有表t_test_dept
deptno name
001 张三,李四,王五
拆分后t_test_dept
deptno name
001 张三
001 李四
001 王五

WITH temp AS
(SELECT dept_no,uname||',' AS uname,(LENGTH(uname)-LENGTH(replace(uname,',')))+1 AS run_times
FROM t_test_dept)
SELECT a.dept_no,regexp_substr(a.uname,'[^,]+',1,b.column_value) VALUE
FROM temp a,
TABLE(CAST(MULTISET (SELECT ROWNUM rn
FROM dual
CONNECT BY Rownum<=a.run_times) AS sys.odcivarchar2list)) b

----------------------
WITH temp AS:相当于创建个临时表再将数据进行分析处理
regexp_substr:通过匹配的正则动态截取字符串
table:这里将集合当做表
cast:把结果集处理为一个集合
multiset:有了它查询结果返回为多行,否则为一行
connect by:指定层级父子行关系
as sys.odcivarchar2list: 相当于当做这种结果集

21.将多条记录合并展示 wm_concat

deptno name
001 张三
001 李四
001 王五
合并后
deptno name
001 张三;李四;王五

SELECT a.dept_no,REPLACE(replace(wm_concat(a.uname),',',';'),',',';')
FROM T_TEST_DEPT a
GROUP BY a.dept_no

oracle常用函数及关键字笔记的更多相关文章

  1. Oracle常用函数

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

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

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

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

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

  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中的一些常用函 ...

随机推荐

  1. springboot thymeleaf和shiro标签整合

    这里用的是 thymeleaf 2.x版本的 添加依赖 <dependency> <groupId>com.github.theborakompanioni</group ...

  2. superagent和request结果转换区别

    superagent和request结果转换区别 使用superagent和request抓取页面内容时,两个抓取内容都可以被cheerio进行处理.但处理时有个细微差别. 1. 使用superage ...

  3. [asp.net mvc 奇淫巧技] 04 - 你真的会用Action的模型绑定吗?

    在QQ群或者一些程序的交流平台,经常会有人问:我怎么传一个数组在Action中接收.我传的数组为什么Action的model中接收不到.或者我在ajax的data中设置了一些数组,为什么后台还是接收不 ...

  4. 放弃FreeMark?

    JAVA项目FreeMark 生产静态页面   a)    弊端                 i.          依赖后台工程师拼装页面,不利于前端.后台工作完全解耦. ii.         ...

  5. 微信小程序 支付功能(前端)的实现

    只提供微信小程序端代码: var app = getApp(); Page({ data: {}, onLoad: function (options) { // 页面初始化 options为页面跳转 ...

  6. 基于HTML5 Canvas 实现弹出框

    用户鼠标移入时,有弹出框出现,这样的需求很常见.这在处理HTML元素实现时简单,但是如果是对HTML5 Canvas 构成的图形进行处理,这种方法不再适用,因为Canvas使用的是另外一套机制,无论在 ...

  7. JVM-1.编译

    目录 一.编译器概述 二.编译器组成 三.示例 四.深入理解JVM中的编译器 五.语法糖 六.补充     一.编译器概述 1.编译器实质 编译器的实质是将一种语言规范转化为另一种语言规范:由人容易理 ...

  8. Spring+SpringMVC+MyBatis深入学习及搭建(六)——MyBatis关联查询

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6923464.html 前面有将到:Spring+SpringMVC+MyBatis深入学习及搭建(五)--动 ...

  9. ActionContext、ServletContext、pageContext的区别?

    ActionContext是当前的Action的上下文环境,通过ActionContext可以获取到request.session.ServletContext等与Action有关的对象的引用: Se ...

  10. vue2入坑随记(二) -- 自定义动态组件

    学习了Vue全家桶和一些UI基本够用了,但是用元素的方式使用组件还是不够灵活,比如我们需要通过js代码直接调用组件,而不是每次在页面上通过属性去控制组件的表现.下面讲一下如何定义动态组件. Vue.e ...