oracle 常用函数

字符函数:
lower('')     字母小写
upper('')        字母大写
initcap('')            每个单词首字母大写
concat('','')          字符串拼接
substr('',a,b)      截取从a开始的b个字符(b不填表示到字符串末尾,第一个字符计数为1,不为0)
length('')             字符串长度
instr('abc','a')     字符a在字符串"abc"中第一次出现的位置,没有找到返回0
lpad('abc',n,'*')   左填充 如果字符串长度小于n,字符串左边用'*'补齐到n位 如果长度大于n,则取前n位
rpad('abc',n,'*')   右填充 参见lpad
trim('')                  去掉前后空格(trim('a' from 'abc')表示去掉a 返回'bc')


数字函数:
round(a,b)              四舍五入如果b>0 表示小数点后保留b位, b=0 保留到个位 b<0 保留到10*(-b)位 如round(1234.567,-2)= 1200
trunc(a,b)              只舍不入(例如 trunc(1234.567, 1)=1234.5 ) b的说明参见round
mod(a,b)                取模 返回 a % b


日期函数:
MONTHS_BETWEEN('','')   返回两个日期相差天数
ADD_MONTHS ('',a)       返回日期加上a天后的日期
NEXT_DAY ('','FRIDAY')  返回下一个周五的日期
NEXT_DAY ('',1)         返回下一个周日的日期(1表示周的第一天) 
LAST_DAY('')            返回该日期所在月的最后一天的日期
ROUND('','')            返回该日期按month或者year四舍五入之后的日期 第二个参数填month或者year 
TRUNC('' ,'')           只舍不入,参见round('','')


日期转换为字符串:
to_char(date,'')
YYYY     4位数字表示的年份
YEAR     英文描述的年份
MM       2位数字表示的月份
MONTH    英文描述的月份
MON      三个字母的英文描述月份简称
DD       2位数字表示的日期
DAY      英文描述的星期几
DY       三个字母的英文描述的星期几简称
HH24:MI:SS AM 时分秒的格式化
DDspth   英文描述的月中第几天
fm       格式化关键字,可选


数字转换为字符串
to_char(number,'')
9       表示一个数字
0       强制显示0
$       放一个美元占位符
L       使用浮点本地币种符号
.       显示一个小数点占位符
,       显示一个千分位占位符


字符串转换为数字:
to_number('')            纯数字字符串转换为数字(可带小数点)
to_number('','')         根据第二个参数格式转换为数字
eg: to_number('$123,456,789','$9,999,999,999') 格式字符串要条件要略宽于要转换的字符串,否则转换失败


字符串转换为日期
to_date('','')           根据参数二的格式讲字符串转换为date类型,参数二中尽量不要使用RR




逻辑判断函数:
case函数:
 
eg:
SELECT last_name,  job_id, salary,
CASE job_id
     WHEN 'IT_PROG' THEN 1.10*salary
     WHEN 'ST_CLERK' THEN 1.15*salary
     WHEN 'SA_REP' THEN 1.20*salary
     ELSE salary 
     END 
AS "REVISED_SALARY"
FROM employees;


decode函数:
SELECT last_name,  job_id, salary,
DECODE(job_id, 
       'IT_P ROG', 1.10*salary,
       'ST_CLERK', 1.15*salary,
       'SA_REP', 1.20*salary,
        salary)
AS "REVISED_SALARY"
FROM employees;


nvl(expr1,expr2)              若expr1为空则返回expr2
nvl2(expr1,expr2,expr3)  若expr1为空则返回expr3否则返回expr2
nullif(expr1,expr2)          相等返回NULL
coalesce(expr1,expr2..)  返回第一个不为NULL的值,如果全为NULL,则返回NULL



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值