首页 > 数据库技术 > 详细

Oracle<单行函数的学习>

时间:2017-03-02 00:47:03      阅读:316      评论:0      收藏:0      [点我收藏+]

首先说一下:函数的目的:简化我们的操作,如果没有这些函数,我们势必要推理半天。 关于那么多函数最好的是阅读官方文档,但是我们英文水平及设计的内容局限性。只需了解一些常用的函数即可。  

Oracle函数特别多,函数可以没有参数,但是必须要有返回值。

以下是我关于单行函数的学习积累的知识: 

1.单行函数: 对单行进行操作,每行返回一个结果,函数可以嵌套。单行函数较为重要的六大类技术分享字符,数值,通用,转换,日期,表达式

2. 字符函数:包括大小写转换与字符处理。 

          2-1:大小写转换包括:UPPER LOWER以及INITCAP (upper用来转为全大写,lower用来转换全小写,initcap用来转换驼峰式书写,即首字母大写)

                 例:SELECT upper(‘nihao‘) 大写,lower(‘Email‘) 小写,initcap(‘job_ss‘) 驼峰 FROM DUAL 

                                       运行结果:     技术分享

          2-2:字符处理包括: concat,substr,length,instr,lpad,rpad,replace,trim.下面一一介绍;

                  2-2-1:concat(连接两个值,相当于||)  

                  例:SELECT "CONCAT"(‘你‘, ‘好‘) 打招呼 FROM dual;       

                                         运行结果 :    技术分享

                   2-2-2:  substr(column|expression,n1,[n2])(返回第一个参数中,从第n1位开始,长度为n2的字符串。如果没有n2则返回从n1开始到最后,n1为负,则取反向值然后再执行右移几位)  

                   例:SELECT SUBSTR(‘dajiahao‘,3,5) FROM dual             结果:技术分享 

                         SELECT "SUBSTR"(‘abcde‘,-1 ,3 )FROM dual            结果:技术分享 

                         select substr(‘abcde‘,-6,6) from dual                      结果:技术分享 

                        由此总结可知:当第n1负值超过字符长度,则结果永远为空。

                  2-2-3: length:即字符的长度 

                       例:SELECT "LENGTH"(‘qshzhenshihaorena‘)FROM dual   结果:技术分享 

                  2-2-4 : instr(s1,s2,[n1],[n2])(返回s1中,子串s2从n1开始,第n2次出现的位置。n1n2默认为1) 

                         例: SELECT "INSTR"(‘hahatianxiataiping‘, ‘a‘,4,2)FROM dual  结果:技术分享 可知所得结果是4之后的第几位,而不是总的位置

                  2-2-5 : lpad与rpad(s1,num,s2):用S2左右填充S1到num位    

                           例   SELECT LPAD(‘ss‘, 10,‘a‘),"RPAD"(‘ss‘, 10, ‘a‘) FROM dual     结果 技术分享              如果超过10个字节的数会截取! 

                  2-2-6: replace(s1,s2,s3);把s1中的s2换成s3 

                           例    SELECT  "REPLACE"(‘qishihaos‘, ‘s‘, ‘w‘) FROM dual               结果 技术分享 

                  2-2-7:trim()去除字符串头部或者尾部的字符 

                            例SELECT "TRIM"(‘s‘ from ‘ssyyss‘) FROM dual                              结果 技术分享                        去除的字符只能是一个单字节字符,汉语字符也行,而且去除的直到边上没有

  3  数值函数 :Round  TRUNC MOD

      round(column|expression,n)四舍五入到小数点后第几位     Trunc截取到小数点后几位      MoD取余

                            例  SELECT "ROUND"(2.23456, 2),"TRUNC"(2.2385, 4), "MOD"(40.4, 7)  FROM dual              结果技术分享

 4    日期函数 :oracle 默认日期形式是:DD-MON-RR  。日期加减数字,功能是在该日期上加减对应天数    sysdate:返回系统当前日期。

                       区别 RR与yy区别:技术分享

          常用日期函数:4.1-sysdate:返回系统的日期:    

                              例: SELECT SYSDATE  FROM dual                    结果:技术分享

                               4.2  months_between   两日期相隔月数 

                               例   SELECT "MONTHS_BETWEEN"(sysdate, ‘1-jan-2000‘) FROM dual   结果:技术分享  ----------------------- 结果这能为小数;

                               4-3  add_months (日期,num)       返回指定日期,加上数字月后的日期         

                               例    SELECT "ADD_MONTHS"(sysdate, 3) FROM dual                       结果;技术分享

                               4-4  next_day ;返回某一日期的下一个指定日期 

                               例 SELECT "NEXT_DAY"(SYSDATE, ‘MON‘) n  FROM dual                    结果:技术分享 

                              4-5  last_day;  返回某一日期的的当月最后一天  

                                例  SELECT  "LAST_DAY"(SYSDATE) FROM dual                        结果       技术分享 

                                4-6  round : 日期的四舍五入,此处注意,如按天四舍五入,周日是第一天,周三周四是分界点。

                                 SELECT  ROUND (SYSDATE,‘mon‘) FROM dual                          结果  技术分享

                                4-7  trunc :日期的截取。  

                                  SELECT  trunc (SYSDATE,‘day‘) FROM dual                          结果:技术分享

                                4-8 extract:返回日期中的年月日 

                                     SELECT  EXTRACT(month FROM sysdate) FROM dual                  结果;技术分享

                                      

       5.转换函数:  

                               5.1:隐式转换

:                                    技术分享

 

                      5.2:显示转换:

                                                  技术分享                                     

                                    to_char(date,字符格式)           2017-03-01 pm 11:34:47  这一天是: wed       技术分享

                                     to_char(num,字符格式)           SELECT "TO_CHAR"(1223.45677,‘9,999.99999‘)||‘rmb‘ FROM dual           技术分享

                                     to_num  (字符,数字格式)                                 SELECT "TO_NUMBER"(‘123456‘ ) FROM dual       技术分享 

                                          数字格式: 技术分享

 

 

                                     to_date    (字符,日期格式)                                 SELECT "TO_DATE"(‘2015-03-18‘, ‘YY-MM-DD‘)FROM dual       技术分享

 

 6:通用函数:与空值相关的一些函数:NVL   NVL2    NULLIF    COALESCE

                  nvl(n1,n2) n1不是null就返回n1,否则返回n2       SELECT  "NVL"(null, 23) FROM dual      技术分享

                   nvl2(n1,n2,n3) n1不是null就返回n2,否则返回n3    SELECT  "NVL2"(NULL, 23, 25) FROM DUAL          技术分享

                   nullif(n1,n2) 如果两个表达式相等返回null,否则返回n1       SELECT "NULLIF"(‘tian‘, ‘hha‘) FROM dual         技术分享

                 "COALESCE"(expr1, ... exprn)返回第一个不为空的参数

              

       

 7 表达式  case与decode 

            case语法: 

             技术分享 

             decode: 

                    技术分享

 

 8       嵌套就不用举例了吧,多练才是王道啊。。

                                                               

                                                                                                                                   2017-03-02  00:02:44

 

:                           

 

 

技术分享

Oracle<单行函数的学习>

原文:http://www.cnblogs.com/wajz/p/6484832.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!