oracle篇 之 单行函数

时间:2022-04-07 10:48:27

一、分类

1.单行函数:需要处理的行数和返回结果的行数相等(单行进单行出)

2.多行函数(组函数):返回结果的行数少于要处理的行数(多行进单行出)

二、字符处理相关函数

1.lower:字符串转换成小写

2.upper:字符串转换成大写

3.initcap:字符串单词首字母大写,其它字符小写

4.concat:字符串拼接,类似||

5.substr:取子串,参数(原始字符串,开始位置1开始,取的字符数)

6.length:字符串长度

三,函数可以嵌套使用

一、数值处理相关函数

1.round(1,2):对数值进行四舍五入

如果第二个参数为负数,表示将小数点虚拟左移相应位数,然后将虚拟小数点后一位进行四舍五入,最后将虚拟小数点后全部清零

select round(55.923,-2)

from dual;

2.trunc(1,2):对数值进行截断,不会进位

如果第二个参数为负数,表示将小数点虚拟左移相应位数,最后将虚拟小数点后全部清零

3.mod:取余数

四、日期处理相关函数

1.日期函数

(1)months_between:两个日期之间相差多少个月

(2)add_months(‘sysdate’,6):15-MAY-95往后推6个月的日期作为返回值

(3)next_day(‘15-MAY-95’,’FRIDAY’):15-MAY-95后面最近一次的星期五的日期作为返回值

(4)last_day(‘15-MAY-95’):15-MAY-95这个月的最后一天的日期作为返回值

(5)round:对日期进行进位或舍位

1)第二个参数为month,表示对天向月进行进位或舍位,逢16进1

2)第二个参数为year,表示对月向年进行进位或舍位,逢7进1

select round(to_date('16-MAY-95','DD-MON-YY'),'month')

from dual;

select round(to_date('16-JUL-95','DD-MON-YY'),'year')

from dual;

(6)trunc:对日期进行舍位

五、类型转换相关函数

1.to_char(date/number,’format’):将数值类型、日期类型转换为字符串类型

第二个参数格式,要用单引号引起来,格式区分大小写

(1)日期格式

YYYY:4位数字的年

MM:2位数字的月

DD:2位数字的天

YEAR:年的英文全拼

MONTH:月的英文全拼

DDSP:天的英文全拼,基数词

DDSPTH:天的英文全拼,序数词

D:1位数字的星期,0表示星期天

DDD:3位数字的天,一年中的第几天

DAY:星期的英文全拼

DY:星期的英文简写,3个字母

HH24:小时的24制表示,2位数字的小时

MI:2位数字的分钟

SS:2位数字的秒

日期格式双引号中的内容会原样输出

select to_char(sysdate,'fmYYYYMMDD HH24:MI:SS AM "YYYYMMDD"')

from dual;

(2)数字格式

9:表示1位数字占位符

0:表示1位数字占位符,位数不够前面强制补0

$:数字前加美元符号

L:数字前加本地的货币符号

.:表示小数点

,:表示千分符

fm:去掉空白、占位符0,类似java String中的trim()方法

select last_name,to_char(salary,'$999,999.99')

from s_emp;

select last_name,to_char(salary,'L000,000.00')

from s_emp;

1.to_number:将字符串类型转换为数值类型

select to_number('100')

from dual;

2.to_date:将字符串类型转换为日期类型

select round(to_date('16-MAY-95','DD-MON-YY'),'month')

from dual;

单行函数可以嵌套使用,从内向外进行计算