1. 城镇大全网
  2. 综合百科

数据库篇-oracle函数,数据库篇-oracle函数

1.round

示例:

选择round(23.4),round(23.45,1),

员工的 轮(23.45,-1);

结果:23 23.5 20

2.trunc 取整精度函数

从dual中选择trunc(12.35)

结果:12

3.ceil/floor 取整函数

示例:

从emp中选择ceil(23.45),floor(23.45);

结果:24

4.计算函数

(1) abs取绝对值。

示例:

从emp中选择abs(23.45),abs(-23),ABS(0);

成绩:23.45 23

(2) mod(m,n)取余数。

select mod(5,2) from emp result: 1

从emp中选择mod(5,null)结果是空。

(3) power(m,n)得出m的n次幂。

从emp中选择power(2,3);

(4) sqrt:求平方根

从emp结果4中选择sqrt(16)

5.聚合函数

(1)和函数

从stuinfo a中选择sum(a . salary);

(2)计数统计功能

select count(*)from stu info a;

(3)avg平均函数

从stuinfo a中选择avg(a . salary);

(4)max最大值函数

从stuinfo a中选择max(a . salary);

(5)最小最小值函数

从stuinfo a中选择min(a . salary);

6.字符函数

(1)大写小写转换为大写

(2)将大写字母小写

(3) initcap大写。

(4) substr (char,[m[,n]])获取子串函数。

注:负号是从末尾开始倒数。

选择substr('abcde ',2,3),substr('abced ',2),

来自emp的 substr('abced ',-2,1);

结果:bcd bcde e

(5) length获取字符串的长度。

从emp中选择长度(' ABC ');

结果:3

(6) concat(char1,char2)字符串连接函数或||

concat(char1,char2)

select concat('ab ',' CD ')from EMP;

并从emp中选择' ab ' | | ' cd结果是一样的

(7) TRIM删除子串函数(c1中的c2)

这个函数的意思是从字符串c1中删除字符c2。

select trim(' abcde '中的' a ')from EMP;

结果:bcde

LTRIM(c1[,c2]):从c1中移除c2。

selct ltrim('ababaa ',' a ')from EMP;

Results: babaa导致删除第一个a。

rtrim(c1[,c2])从尾部移除字符;

selct rtrim('ababaa ',' a ')from EMP;

结果:abab

TRIM(c1):移除左侧空网格。

(8)替换函数(char,s _ string [,r _ string])

省略r_string,替换为空 grid。

例:用大写的A替换A。

select replace('abcde ',' A ',' A ')from EMP;

结果,如果Abcde不写‘A’,A就会被去掉;

替换ab:

select replace('abcde ',' ab ',' A ')from EMP;

结果Acde的意思是ab同时改变。

(9)指令查找函数

在一个字符串中找到另一个字符串。

select instr('sdsdddssd ',' ds ')from dual;

从第二个位置向上看,找出ds第二次出现的位置。

select instr('sdsdddssd ',' ds ',2,2 from dual;

7.日期函数:

[/h (1) sysdate系统时间:

默认格式:DD-MON-RR

从emp中选择sysdate-返回当前时间。

(2)日期运算add_months(date,I)

i可以是任意整数。如果我是负数,相应减去几个月。

示例:从当前日期加上3个月或减去3个月。

select add_months(sysdate,3),

add_months(sysdate,-3)from EMP;

结果:2015年8月22日至2015年2月22日

(3)next _ day(date,char)是星期几?

下周一是什么时候?

select next_day(系统日期,'星期一')from emp

(4) last_day(date)返回该月的最后一天。

select last _ day(sys dat)from EMP;

(5)个月_在(日期1,日期2)之间

表示两个日期之间的月差。

Select months _ between(' 20-5-15 ',' 10-1-15 ')

来自emp

结果:4

(6)提取(日期时间中的日期)

返回当前日期的年份。

select extract(从雇用日期开始的年份),

提取(从雇用日期开始的月份),

从雇员中提取(从雇用日期开始的天数);

示例:

返回年份

select extract(从sysdate开始的年份)from emp

返回月份

select extract(sysdate的月份)from emp

返回天数

select extract(从sysdate开始的日期)from emp

获取小时数

选择提取(从时间戳开始的小时' 2015-10-1 17:25:13 ')

来自emp

8.转换函数

(1)函数to_char用于将日期转换为字符

to_char(date[,fmt[,params]])

参数说明:date:要转换的日期。

fmt:转换的格式参数:日期语言

日期转换日期的功能如下

格式:YY YYYY年。

MM月.月球

第二天.天空

HH24 HH12 .时间

我想念你.分钟

示例:选择

to_char(sysdate,' YYYY-MM-DD HH24:MI:SS ')

来自emp

(2)字符转换为日期的to_date。

to_date和to_cahr的区别在于to _ date转换后的日期。

的格式与系统的格式相同。一般可以使用to_char。

选择您想要的格式,截止日期:2017年9月3日。

to_date(date[,fmt[,params]])

选择

至今(' 2015年5月22日',' YYY-月-日')

来自emp

根据系统设置,一般结果是相同的。

结果:2017年9月3日

例2:

查询2006年入职员工信息的日期为2006年1月16日。

从员工中选择*

where to_char(雇佣日期,'年/月/日')

在“2006/01/01”和“2007/01/01”之间;

从员工中选择*

像'%'这样的雇佣日期;

(3)将数字转换成字符的功能

to_char(编号[,fmt])

9:显示数字,忽略前面的0。

0:显示数字,如果位数不足,用0填充。

。或d:显示小数点。

,或者g:显示千位。

$:美元符号

S:正或负(正面和背面都可以)

示例:

select to_char(12345.678,' .999.999 ')

来自emp

结果:12,345.678美元

select to_char(12345.678,' S99.999.999 ')

来自emp签名:

结果:12345.678

(4)将字符转换为数字的功能

to_number(char,[,fmt])

示例:select to_number('00 ',' 99 ')

来自emp

结果:1000

9. 填充函数

左填充lpad和右填充rpad

select lpad('abcd ',10,' *') left,

rpad('abcd ',10,' * ')右

from dual;

结果:

* * * * * * * ABCD ABCD * * * * * *

10. NVL通用函数

(1) NVL

如果oracle的第一个参数是空,则显示第二个参数的值。

如果第一个参数的值不是空,则显示第一个参数。

的值。

例如:

SQL & gt;从dual中选择ename,NVL(comm,-1);

(2) NVL2函数

如果函数的第一个参数不是空,则显示第二个参数。

,如果第一个参数的值为空,则显示第三个参数。

的值。

SQL & gt;select ename,NVL2(comm,-1,1)

来自emp

(3) NULLIF函数

NULLIF(exp1,expr2)函数

用于在exp1和exp2相等时返回空(NULL)。

否则,返回第一个值。

11. Coalesce函数

高斯函数类似于NVL函数。

它的好处是选择多。

格式如下:

Coalesce(表达式1,表达式2,表达式3…..exprn)

含义:

返回表达式中的第一个非[/k0/]表达式。

SELECT COALESCE(NULL,NULL,3,4,5)

来自dual

返回结果是:3。

如果所有自变量都为空,则合并

返回空值。

12.wm_concat:字段合并函数

将列显示为行。

原始表名是:

a

b

c

d

转换后

select WM _ concat(name)from dual;

结果a、b、c、d、e

用“|”替换结果中的逗号

select replace(WM _ concat(name),',',' | ')

from dual;

13.over分析函数

按部门“连续”求和

sum(sal) over(分区按deptno排序按ename);

按部门汇总

sum(sal) over(按deptno分区);

不要按部门连续求和。

sum(sal) over(按deptno,ename排序);

求所有员工不分部门的总和,效果相当于sum(sal)。

sum(sal) over()

下面列出了常用的分析函数:

row_number() over(分区依据...以...排序...)

rank()超过(分区依据...以...排序...)

dense_rank() over(分区依据...以...排序...)

count()超过(分区依据...以...排序...)

max()超过(分区依据...以...排序...)

分钟()以上(分区依据...以...排序...)

sum() over(分区依据...以...排序...)

avg() over(分区依据...以...排序...)

first_value() over(分区依据...以...排序...)

last_value() over(分区依据...以...排序...)

lag() over(分区依据...以...排序...)

lead() over(分区依据...以...排序...)

14.decode函数

选择雇员id,

decode (sign (salary -17000),1,'优秀',0,'优秀',-1,

decode (sign(薪水-6000),1,'好',0,'好',-1,

decode (sign (salary-4200),1,'通过',0,'通过',-1,'失败'))

来自员工;

,

猜你喜欢:综合百科

综合百科数据库篇-oracle函数,数据库篇-oracle函数

转载请注明:原文链接 | http://www.nnxc.com.cn/10043353188.html