设为首页 收藏本站
查看: 959|回复: 0

[经验分享] oracle中的单行函数

[复制链接]

尚未签到

发表于 2016-7-17 11:21:11 | 显示全部楼层 |阅读模式
  单行函数的特征:
1、单行函数对单行操作
2、每行返回一个结果
3、有可能返回值与原参数数据类型不一致(转换函数)
4、单行函数可以写在SELECT、WHERE、ORDER BY子句中
5、有些函数没有参数,有些函数包括一个或多个参数
6、函数可以嵌套
  单行函数的分类:
  1、字符函数
2、数值函数
3、日期函数
4、转换函数
5、通用函数
6、函数嵌套
  一、字符函数
  字符函数:主要指参数类型是字符型,不同函数返回值可能是字符型或数字类型。
  大小写转换函数:                                                                                                                            LOWER(列名|表达式):将大写或大小写混合的字符转换成小写
UPPER(列名|表达式) :将小写或大小写混合的字符转换成大写
INITCAP(列名|表达式) :将每个单词的第一个字母转换成大写,其余的字母都转换成小写
  http://hiphotos.baidu.com/ysj5125094/pic/item/63140386cc278469c75cc3c7.jpg
  字符处理函数:
CONCAT:连接两个值,等同于|| 格式:CONCAT(column1|expression1,column2|expression2)
SUBSTR:返回第一个参数中从n1字符开始长度为n2的子串,如果n1是负值,表示从后向前数的abs(n1)位,如果n2省略,取n1之后的所有字符 格式:SUBSTR(column | expression,n1[,n2])
LENGTH:取字符长度 格式:LENGTH(column | expression)
INSTR:返回s1中,子串s2从n1开始,第n2次出现的位置。n1,n2默认值为1 格式:INSTR(s1,s2,[,n1],[n2])
LPAD:返回s1被s2从左面填充到n1长度。 格式:LPAD(s1,n1,s2)
RPAD:返回s1被s2从右面填充到n1长度。 格式:RPAD(s1,n1,s2)
TRIM:去除字符串头部或尾部(头尾)的字符 格式:TRIM(leading | trailing | both, trim_character From trim_source)
REPLACE:把s1中的s2用s3替换。 格式:REPLACE(s1,s2,s3)
  http://hiphotos.baidu.com/ysj5125094/pic/item/e0e673913a84c2cea877a4d0.jpg
  http://hiphotos.baidu.com/ysj5125094/pic/item/de739dc3e49163580ff477df.jpg
  
二、数字函数
  1、ROUND(列名|表达式, n):将列或表达式所表示的数值四舍五入到小数点后的第n位。
2、TRUNC(列名|表达式,n):将列或表达式所表示的数值截取到小数点后的第n位。
3、MOD(m,n):取m除以n后得到的余数。

http://hiphotos.baidu.com/ysj5125094/pic/item/083db8ca987307be53664fb0.jpg
  三、日期函数
  常用的日期运算如下:
1、日期类型列或表达式可以加减数字,功能是在该日期上加减对应的天数。如:’10-AUG-06’+15结果是’25-AUG-06’。
2、日期类型列或表达式之间可以进行减操作,功能是计算两个日期之间间隔了多少天。如:’10-AUG-06’-‘4-AUG-06’结果四舍五入后是6天。
3、如果需要加减相应小时或分钟,可以使用n/24来实现。
  常用日期函数:                                                                                                                                       1、SYSDATE:返回系统日期
2、MONTHS_BETWEEN:返回两个日期间隔的月数
3、ADD_MONTHS:在指定日期基础上加上相应的月数
4、NEXT_DAY:返回某一日期的下一个指定日期
5、LAST_DAY:返回指定日期当月最后一天的日期
6、ROUND(date[,'fmt'])将date按照fmt指定的格式进行四舍五入,fmt为可选项,如果没有指定fmt,则默认为DD’,将date四舍五入为最近的天。
7、 格式码:世纪CC,年YY,月MM,日DD,小时HH24,分MI,秒SS
8、TRUNC(date[,'fmt'])将date按照fmt指定的格式进行截取,fmt为可选项,如果没有指定fmt,则默认为‘DD’,将date截取为最近的天。
9、EXTRACT:返回从日期类型中取出指定年、月、日
  http://hiphotos.baidu.com/ysj5125094/pic/item/1377cf02be4a18343812bb90.jpg
  http://hiphotos.baidu.com/ysj5125094/pic/item/8cde8f01193f8bc4e850cd9c.jpg
http://hiphotos.baidu.com/ysj5125094/pic/item/43ab680ecc2a66696159f39b.jpg

http://hiphotos.baidu.com/ysj5125094/pic/item/5514eecb721cbb05f01fe767.jpg
http://hiphotos.baidu.com/ysj5125094/pic/item/aee4a88e5630b9b9533d926d.jpg

四、转换函数
  转换函数分为隐式数据类型转换和显式数据类型转换
  1、显式数据类型转换:
  通常是在字符类型、日期类型、数字类型之间进行显性转换。主要有3个显性函数:
TO_CHAR
            TO_CHAR(date|number [,‘fmt’])把日期类型/数字类型的表达式或列转换为字符类型。
                   ‘fmt’指的是需要显示的格式:
                   需要写在单引号中,并且是大小写敏感
                   可包含任何有效的日期格式
            常用日期格式:
                   YYYY:4位数字表示年份;
                 YY:2位数字表示年份,但是无世纪转换(与RR区别在后面章节介绍);
                 RR:2位数字表示年份,有世纪转换(与YY区别在后面章节介绍);
                 YEAR:年份的英文拼写;
                 MM:两位数字表示月份;
                 MONTH:月份英文拼写;
                   DY:星期的英文前三位字母;
                 DAY:星期的英文拼写;
                 D:数字表示一星期的第几天,星期天是一周的第一天。
                 DD:数字表示一个月中的第几天;
                 DDD:数字表示一年中的第几天。
            常用时间格式:
                   AM 或PM:上下午表示;
                 HH 或HH12或HH24:数字表示小时。HH12代表12小时计时,HH24代表24小时计时;
                 MI:数字表示分钟;
                 SS:数字表示秒;
           一些特殊格式:
                   TH:显示数字表示的英文序数词,如:DDTH显示天数的序数词。
                 SP:显示数字表示的拼写。
                 SPTH:显示数字表示的序数词的拼写。
  TO_NUMBER和TO_DATE函数:
          TO_NUMBER(char[,’fmt’]) 把字符类型列或表达式转换为数字类型。
                使用格式和TO_CHAR中转换成字符类型中的格式相同
        TO_DATE(char[,‘fmt’]) 把字符类型列或表达式转换为日期类型。
                格式和TO_CHAR中转换成字符类型中的格式相同。
  五、其他函数:
  与空值(NULL)相关的一些函数,完成对空值(NULL)的一些操作。主要包括以下函数:
1、NVL
2、NVL2
3、NULLIF
4、COALESCE
条件处理函数:
1、CASE表达式
2、DECODE
  NVL (表达式1, 表达式2)函数功能是空值转换,把空值转换为其他值,解决空值问题。表达式1是需要转换的列或表达式,表达式2是如果第一个参数为空时,需要转换的值。
NVL(comm,0)
NVL(hire_date,'01-JAN-06')
NVL(job_id,'No Job Yet')
注意:数据格式可以是日期、字符、数字,但数据类型必须匹配。
  http://hiphotos.baidu.com/ysj5125094/pic/item/c6dac1dd585208e2cc11661a.jpg
http://hiphotos.baidu.com/ysj5125094/pic/item/882f9e874841cd7d66096ee6.jpg
http://hiphotos.baidu.com/ysj5125094/pic/item/00658bb6e6f9beb730add1e3.jpg
http://hiphotos.baidu.com/ysj5125094/pic/item/292802c618634a9fd00060ee.jpg
http://hiphotos.baidu.com/ysj5125094/pic/item/08da1f96a08c8f2e54fb96eb.jpg
http://hiphotos.baidu.com/ysj5125094/pic/item/2be935f2d0aec9880b46e0f4.jpg
六、函数嵌套:
  1、单行函数可以嵌套于任何层。
2、嵌套的函数是从最里层向最外层的顺序计算的。
  例:
  SELECT employee_id,manager_id ,    
                 NVL2(TO_CHAR(manager_id),to_char(manager_id),'No Manager')
  FROM employees

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-245282-1-1.html 上篇帖子: oracle nologging append 注意 下篇帖子: 查看Oracle CPU情况
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表