oracle函数

/*四舍五入
round(n[,m])
缺省m:0
m>0:小数点后m位
m<0:小数点前m位*/

select round(23.4),round(23.45,1),round(23.45,-1) from dual;

/*取整
ceil 取最大   上限
floor 取最小 下限*/
select ceil(23.45),floor(23.45) from dual

select abs(23.45),abs(-23),abs(0) from dual

/*mod(m,n)取余 m,n有一个null就返回null
*/
select mod(23,2) from dual

select power(2,3),power(null,2) from dual

select sqrt(16) from dual

/*三角函数
sin asin 
cos acos
tan atan
弧度
*/
select sin(5) from dual

--upper小写转大写、lower大写转小写、initcap首字母大写
select upper('adbe'),lower('aDe'),initcap('asd') from dual

/*substr获取自字符串函数
substr(char,[m[,n]])
n可以省略,当n省略时表示从m的位置截取到字符串末尾
m为0,表示从字符串的首字母开始截取
m为负数时,表示从字符串的尾部开始截取*/

select substr('abcde',2,3),substr('abcded',2),substr('abcde',-2,1)from dual

--length获取字符串长度
select length('acd') from dual

/*字符串连接函数
concat(char1,char2)
与||操作符作用一样*/
select concat('ab','cd'), 'ab'||'cd'from dual

/*去除字串函数
trim(c2 from c1)从字符串c1中去掉字符c2*/
select trim('a' from 'abcdea') from dual

/*ltrim(c1,[,c2])从左边去掉c2
*/
select ltrim('aabababa','a') from dual
/*rtrim(c1,[,c2])从右边去掉c2
*/
select rtrim('aabababaa','a') from dual

--trim(c1)去掉空格

--替换函数replace
--replace (char,s_string,[,r_string])省略r_string用空格替换
select replace('abcde','a','A') from dual

--sysdate 系统当前日期
select sysdate from dual
--add_months系统当前加
select add_months(sysdate,2),add_months(sysdate,-2) from dual
--next_day(date,char)下一个
select next_day(sysdate,'星期一') from dual
--last_day(date)
select last_day(sysdate) from dual
--months_between(date1,date2)日期差
select months_between('1-1月-15',sysdate) from dual
--extract(date from datetime)
select extract(year from sysdate) from dual
select extract(day from sysdate) from dual
select extract(hour from timestamp '2015-10-1 13:00:00') from dual
select extract(second from timestamp '2015-10-1 13:22:22') from dual
--转换函数
/*日期转换字符函数
to_char(data[,fmt[,params]])
参数说明
data:将转换的日期
fmt:转换的格式
params:默认DD-MON-RR
YY YYYY YEAR
MM MONTH
DD DAY
HH24 HH12
MI SS*/

select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual
/*字符转换日期函数
to_date(char[,fmt[,params]])
*/
select to_date('2015-05-22','YYYY-MM-DD') from dual

/*数字转换为字符函数
to_char(number[,fmt])
9:显示数字忽略前面的0
0:显示数字,位数不足用0补足
.或d:显示小数点
,或g:显示千分位
$:显示美元符号
S:加正负号(前后都可以)*/

select to_char('12345.78','$99,999.999')from dual

/*字符转数字
to_number(char[,fmt])*/
select to_number ('$1,000','$9999') from dual




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle中的自定义函数是用户根据自己的需求创建的一种可重复使用的程序单元。通过自定义函数,可以根据输入参数计算并返回一个值。 在Oracle中,创建自定义函数的语法结构如下所示: CREATE [OR REPLACE] FUNCTION 函数名 (参数1 数据类型, 参数2 数据类型, ...) RETURN 返回值类型 AS 声明局部变量、常量等 BEGIN 执行函数体的逻辑操作 可以包含条件判断、循环、异常处理等语句 RETURN 返回值; END; 其中,CREATE关键字用于创建函数,OR REPLACE关键字用于替换已存在的同名函数函数名是自定义函数的名称,可以根据需要自行指定。参数1、参数2等是自定义函数的输入参数,可以根据需要指定参数的数量和数据类型。返回值类型是自定义函数的返回结果的数据类型。 在函数体中,可以进行各种逻辑操作,包括条件判断、循环、异常处理等。最后,通过RETURN关键字将计算结果返回。 下面是一个示例: CREATE OR REPLACE FUNCTION depA2(dep VARCHAR2) RETURN NUMBER AS result NUMBER; BEGIN SELECT COUNT(e.deptno) INTO result FROM SCOTT.dept d LEFT JOIN SCOTT.emp e ON d.deptno = e.deptno WHERE d.dname = dep; RETURN result; END; 在这个示例中,depA2是一个自定义函数,参数dep是部门名称,函数的功能是统计输入部门的员工人数。函数通过查询SCOTT.dept和SCOTT.emp表,计算出符合条件的员工人数,并将结果返回。 要调用自定义函数,可以使用SELECT语句或者直接在其他SQL语句中引用函数名,并传入参数。 例如,要调用上述示例中的函数,可以使用以下语句: SELECT depA2('SALES') FROM dual; 这将返回部门名称为'SALES'的员工人数。 总结起来,Oracle中的自定义函数是根据用户需求创建的可重复使用的程序单元,它可以根据输入参数计算并返回一个值。创建自定义函数的语法结构包括函数名称、输入参数、返回值类型和函数体。调用自定义函数可以使用SELECT语句或在其他SQL语句中引用函数名。 请注意以上回答仅基于提供的参考内容,

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值