oracle常用函数及关键字笔记
--函数及关键字--
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常用函数及关键字笔记的更多相关文章
- Oracle常用函数
前一段时间学习Oracle 时做的学习笔记,整理了一下,下面是分享的Oracle常用函数的部分笔记,以后还会分享其他部分的笔记,请大家批评指正. 1.Oracle 数据库中的to_date()函数的使 ...
- oracle常用函数总结(二)
之前也有写过“oracle常用函数总结(一)”,为了尽量找全常见oracle函数,笔者特意查找了相关资料来作为参考,下边给大家罗列出来,部分和之前有重复的,希望能帮到大家! 列举了31个函数和1个分组 ...
- Oracle常用函数:DateDiff() 返回两个日期之间的时间间隔自定义函数
首先在oracle中没有datediff()函数可以用以下方法在oracle中实现该函数的功能:1.利用日期间的加减运算天:ROUND(TO_NUMBER(END_DATE - START_DATE) ...
- oracle常用函数总结
Oracle常用函数总结 ---oracle常用函数-----一.数值型常用函数----取整数--select floor(10.1) from dual;--将n四舍五入,保留小数点后m位(默认情况 ...
- oracle常用函数整理
oracle常用函数整理 1.绝对值.取余.判断数值正负函数 绝对值:ABS(n) 示例: SELECT ABS(100),ABS(-100),ABS('100') FROM ...
- oracle常用函数积累
--oracle常用函数积累-- --1.字符串长度:LENGTH ,语法: CONCAT(string) --示例 select LENGTH('AA_BB') from dual;--结果:5 - ...
- ORACLE常用函数的使用方法
ORACLE常用函数的使用方法 1. 字符串函数 (1) length(); 获取字符长度SELECT LENGTH('中国') FROM PLATFORM_METAINFO_TABLES WHERE ...
- SQL操作数据——SQL组成,查询基础语法,where,Oracle常用函数等
SQL组成 DML数据操作语言 DCL数据控制语言 DQL数据查询语言 DDL数据定义语言 查询基础语法 记录筛选 where 子句 记录筛选 where 子句 实例练习 实例练习 Select语句中 ...
- oracle常用函数及示例
学习oracle也有一段时间了,发现oracle中的函数好多,对于做后台的程序猿来说,大把大把的时间还要学习很多其他的新东西,再把这些函数也都记住是不太现实的,所以总结了一下oracle中的一些常用函 ...
随机推荐
- Java经典编程题50道之一
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? public class Example01 { publi ...
- 可视化之Berkeley Earth
去年冬天雾霾严重的那几天,写了两篇关于空气质量的文章,<可视化之PM2.5>和<谈谈我对雾霾的认识>.坦白说,环境问题是一个无法逃避又无能为力的话题.最近因为工作中有一些数据可 ...
- js for循环 等腰三角形demo
<script> for(var i=1;i<10;i++){ for(var j=1;j<10-i;j++){document.write(" ")} f ...
- Nmap绕过防火墙&脚本的使用
Nmap是用于端口扫描,服务检测,甚至是漏洞扫描等多种功能的强大工具.Nmap从入门到高级覆盖了许多基础的概念和命令,在这篇文章的第二部分,我将提及Nmap一些高级的技术. 防火墙和入侵检测系统(ID ...
- Unity3d简单的socket通信
vs2010或其他创建C#工程 C#端代码一: using System; using System.Collections.Generic; using System.Linq; using Sys ...
- 通过LOGBACK实现每个类、包或自定义级别
项实现LOGBACK对每个包或者类或者通过自定义级别的方式实现自定义输出的日志进入制定的文件.查阅了很多资料,都没有找到行之有效的解决方案,直到看到了这篇文章http://www.360doc.com ...
- [0] 分析 EntityName 时出错。 行 2,位置 *。
1. 报错内容“若要在加载设计器前避免可能发生的数据丢失,必须纠正以下错误: ” “分析 EntityName 时出错. 行 2,位置 *.” 2. 如图: 3. 解决方案:查看项目全路径,是否有 ...
- python 遍历列表 list
names=['a','b',['aha',[['lucy','lily']]] 遍历这个列表 def print_list(this_list); for name in this_list: if ...
- Transparent Application Failover 透明应用切换
官方文档地址 http://docs.oracle.com/cd/E11882_01/network.112/e41945/advcfg.htm#NETAG455 About Transparent ...
- 我的学习之路_第二十章_JDBC
JDBC 使用JDBC技术,通过mysql提供的驱动程序,操作数据库 ● 1. 注册驱动 告知jvm 使用的是什么驱动程序(mysql,oracle) 使用API中的类 DriverManager中的 ...