Oracle单行函数语句

单行函数:一条记录对应一条结果 一对一关系

dual:是一个伪表,可以用来测试函数和表达式

1、字符控制函数

select
lower('HELLOWORLD'), -- 转小写
UPPER('helloworld'), -- 转大写
initcap('hello world'), -- 首字母大写 
concat('hello','world'), -- 字符串拼接
substr('helloworld',2,4), -- 字符串截取(从第2个开始,向后取4个字符)
length('helloworld'), -- 返回字符串长度
instr('hellojava','x'), -- 返回指定字符第一次出现的位置
lpad('hellojava',15,'*'), -- 左补齐(指定字符串占15位,不足15位向左补齐“*”号)
rpad('hellojava',15,'*'), -- 右补齐(指定字符串占15位,不足15位向右补齐“*”号)
trim('h' from 'hhhellhoworldhhh'),  -- 连续去除首尾的指定字符串
replace('abcabc','a','x')  -- 将指定字符串的指定字符全部替换 (“a”替换为“x”)
from
dual

2、数字函数

select
round(314.55926), -- 取小数点前整数(四舍五入)
round(314.15926,2),-- 保留小数点后2位小数(四舍五入)
round(314.15926,-2) -- 保留小数点向前2位后的整数(四舍五入)
trunc(314.55926),-- 取小数点前整数
trunc(314.15926,2),-- 保留小数点后2位小数
trunc(314.15926,-2),-- 保留小数点向前2位后的整数
mod(103,100) -- 取余运算 参数(被除数,除数) 103%100=3
from
dual

3、日期函数

select
sysdate,-- 当前系统日期时间
sysdate+1, -- 当前日期 +1 day
sysdate-3, -- 当前日期 -3 day
(sysdate+1)-(sysdate-3), --日期相减(日期不可相加,没有实际意义),得到相差天数day
months_between(sysdate+90,sysdate), -- 两日期间相差月份months
add_months(sysdate,2), -- 当前日期加2月
add_months(sysdate,-3),-- 当前日期减3月 
next_day(sysdate,'星期日'),-- 当前日期向后运算获得最近的星期日的日期
last_day(sysdate), -- 月份最后一天
trunc(sysdate,'mm'), -- 运算结果保留到月份
round(sysdate,'mm') -- 运算结果保留到月份(四舍五入,月份过半+1月)
from
dual

4、转换函数

-- 隐式转化规则
-- date<=>varchar2<=>number
-- 显示转换
select
to_char(sysdate,'yyyy-mm-dd'),           -- date转char 
to_char(sysdate,'yyyy"年"mm"月"dd"日"'),  -- date转char(定制化:特殊字符加双引号)
to_date('1999-02-08','yyyy-mm-dd'),      -- char转date
to_char(123456789,'999,999,999.99'),     -- number转char(设置格式:3位输出)
to_char(123456789.28,'$999,999,999.99'), -- number转char(拼接美元符号)
to_char(123456789.28,'L999,999,999.99'), -- number转char(拼接人民币符号 'L'代表本地的货币符号)
to_number('¥001,234,567.89','L000,000,999.99'), -- char转number 
to_number('¥001,234,567.89','L000,000,999.99')+1 --char转number并做运算
from
dual

5、通用函数

select
nvl('目标值','替换值'), -- 空值替换(目标值为空值时,将目标值结果替换为‘替换值’)
nvl2('目标值','1','2'), -- 目标值替换(目标值不为空返回1,为空返回2)
nullif(expr1,expr2), -- 相等比较(expr1=expr2返回null,否则返回expr1)
coalesce(expr1,expr2,expr3....) -- 多值替换(expr1为空返回expr2,expr2为空返回expr3...直到不为空)
from
dual

6、条件表达式

case表达式:

CASE expr 				//参与判断的值expr
WHEN expr1 THEN result  //expr等于expr1返回result
WHEN expr2 THEN result2
ELSE result3		 	//否则返回result3
END	AS "别名"	 				//结束

decode()函数:

DECODE(expr, //参与判断的值expr
expr1,result, //expr等于expr1返回result
expr2,result2, //否则返回result3
result3
) AS "别名"	//结束
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值