oracle常用函数 个人整理

浏览: 1237

/*读取字符串长度*/

select length(string) from dual;

/*将字符串的所有字符转成大写*/

select upper(string) from dual;

/*将字符串的所有字符转成小写*/

select lower(string) from dual;

/*返回一个n1除以n2的余数*/

select mod(n1,n2) from dual;

/*round按照指定的精度进行舍入,trunc直接舍去*/

--举例

select round(55.885,2),round(-55.885,2),trunc(55.885,2),trunc(-55.885,2)

  from dual;

/*返回一组表达式中的最大值,即比较字符的编码大小*/

select greatest('2013-04-05','2014-05-06') from dual;

/*返回一组表达式中的最小值,即比较字符的编码大小*/

select least('2013-04-05','2014-05-06') from dual;

/*根据任意字符截取字符串长度*/

select substr( 'jsjhegang.com',1, instr('jsjhegang.com','.')-1 )

      ,substr( 'jsjhegang.com', instr('jsjhegang.com','.')+1, length('jsjhegang.com') )

  from dual

;

/*字符串替换,将字符串str中的str1替换成str2*/

select replace(string,str1,str2)

  from dual;

--比如查询 select replace('he love you','he','i') from dual;    运行结果为'i love you'

/*全角半角转换函数*/

to_single_byte(c)--转换成半角

to_multi_byte(c) --转换成全角

/*排名函数*/

rank() over(partition by .. order by ..)      --样式:1,2,2,4,5

dense_rank() over(partition by .. order by ..)--样式:1,2,2,3,4

/*按特定标准排序的行号*/

row_number() over(partition by ... order by ...) --样式:1,2,3,4,5 (不会重复)

/*LEAD可以访问分组中当前行之后的行(构造字段使用),与lag()函数相反*/

--举例说明

select B.CRD_NO

   ,B.MARK_DATE as "营销开始日期"

   ,lead(B.MARK_DATE,1,'20991231')

            over( partition by B.CRD_NO/*分组字段*/ order by B.MARK_DATE/*排序字段*/ )  as "营销结束日期"

  from ptfh.B_M_CM_CRD_DJK_MARKET;

/*不足位数补零*/

oracle函数中有不足位数补空格的函数

LPAD和RPAD分别是左补位和右补位

repacle(lpad(字段名,共几位),' ' ,'0')  或者lpad(字段名,共几位,'0')

如运行select repalce(lpad('123',5,' ','0') from dual;

结果是00123,即补足五位

推荐 0
本文由 jsjhegang 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册