




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
常用的函数数值函数 ABS(N) 返回指定值的绝对值 CEIL(N) 返回大于或等于给出数字的最小整数 FLOOR(N) 对给定的数字取整数 MOD(M,N) 返回一个M除以N的余数 ROUND( M ,N ) 按照指定的小数位元数进行四舍五入运算的结果参数:如果N不为整数则截取N整数部分,如果N0则四舍五入为N位小数,如果N小于0则四舍五入到小数点向左第N位。 TRUNC(M,N) 返回M按精度N截取后的值参数:如果N不为整数则截取N整数部分,如果N0则截取到N位小数,如果N小于0则截取到小数点向左第N位,小数前其它数据用0表示。转换函数 TO_CHAR (NUMBER | date,format) TO_NUMBER (char , format) TO_DATE (char, format)分组函数 MAX AVG MIN COUNT SUM字段为空的判断NULL的概述NULL在Oracle中是很特殊的值,任何类型的值都可以是NULL。如果在某行中有一列没有值,那么就说慈航中这个列的值是NULL。NULL是未知的东西,常称它为“UNKNOWN”或空值。正因为它是未知的,才会有很多值得注意的规则。NULL可以是任何数据类型的值,也可以不依赖于数据类型单独存在(字面量NULL),任何没有NOT NULL约束或主键约束的列都有可能出现NULL值。NULL和其他任何值都不相等或相等,包括自身(当然是用IS NULL判断是可以的)。但是在某些时候,Oracle却把他们当成相等的(指Oracle的一些内部规则),如SQL集合语句、Group by分组、Decode函数等。NULL的判断和比较运算规则Oracle中判断一个列值或变量值是否是NULL,必须是用IS NULL或IS NOT NULL,而不能使用=NULL或NULL。NULL的算数或者逻辑运算规则NULL做一些算数运算,比如+、-、*、/等,结果还是NULL,但是对于连接操作符|,NULL忽略。select null+10 from dual;select null|ygczm from dual;select concat(null,ygczm) from dual;NULL与函数 Oracle对NULL处理有专门的函数,所以这里只讲述NVL、NVL2、NULLIF、COALESCE、DECODE函数,以及两种CASE表达式对NULL的处理。NVL函数 语法:NVL(expr1,expr2) 描述:常用语expr1可能是NULL,而我们又不想在查询结果中出现空值的转换需求。如果expr1是NULL,那么用expr2作为返回值,不是NULL则返回expr1。expr1和expr2一般是类型相同的,如果类型不同会采用自动类型转换,如果转换失败则出错。采用的自动类型转换规则如下: 如果expr1是字符类型,那么在比较前expr2转换为expr1类型,返回值类型是expr1所在的字符集的VARCHAR2类型。 如果expr1是数值型,Oracle会检查expr1和expr2的数值类型优先级,然后将优先级低的参数类型转换为优先级高的参数类型,最后返回的类型是优先级最高的那个类型。数值类型优先级BINARY_DOUBLEBINARY_FLOATNUMBER。 如果expr1是字面量NULL,expr2是非NULL。则转为expr2类型,返回值同expr2。NVL2函数 语法:NVL(expr1,expr2,expr3) 描述:常用于对expr1的值不管是否是NULL都要转换的需求。比NVL要先进一点,加了额外的判断,expr1如果是NULL则返回expr3,否则返回expr2。这里的类型转换就和expr1没有关系了,一般要求expr2和expr3类型要一致,如果不一致则采用自动类型转换。 如果expr2是字符类型,在比较前将expr3转换为expr2类型,如果expr3是字面量NULL,则没有必要转换。 如果expr2是数值类型,Oracle会检查expr2和expr3的数值类型优先级,然后将低优先级的参数类型转换为高优先级的参数类型,最后返回值类型就是高优先级的类型。 如果expr2是字面值NULL,expr3不是NULL,则返回值同expr3类型。下面的6个例子中哪些是错的呢?select NVL2(NULL,1,2) from dual;select NVL2(NULL,1,2) from dual;select NVL2(NULL,NULL,2) from dual;select NVL2(NULL,1,2) from dual;select NVL2(NULL,1,a) from dual;select NVL2(NULL,a,1) from dual;NULLIF函数 语法:NULLIF(expr1,expr2) 描述:判断expr1和expr2是否相等,若相等则返回NULL,否则则返回expr1。注意和NVL、NVL2函数不同的是,expr2要与expr1类型相同,必须类型相同。另外还有一点expr1不能是字面量NULL。COALESCE函数 语法:COALESCE(expr1,expr2,exprn) 描述:此函数可以接受多个表达式或字面量值,从左到右返回第一个非NULL值,如所有的列元素都为NULL,则返回NULL。它有短路计算功能,比如expr1为NULL,expr2非NULL,则返回expr2的值,不再计算expr3的值,其他依次类推。它实现的功能可以用NVL、CASE WHEN或DECODE代替,当然对于找第一个非NULL值,用这个函数是最简单的。注意:此函数要求所有的变量都是同一类型,否则会报错。CASE表达式和DECODE函数处理NULL 语法:DECODE(value, if1, then1, if2,then2, if3,then3, . . . else ) Simple Oracle case表达式,使用表达式确定返回值case search_expression WHEN expression1 THEN result1 . WHEN expressionN THEN resultN ELSE default_result END Searched case表达式,使用条件确定返回值case WHEN condition1 THEN result1 . WHEN condistionN THEN resultN ELSE default_resultEND Simple case无法精确匹配NULL,而DECODE可以匹配NULL,如果不需要匹配NJULL,那么和DECODE的功能是一样的。 Searched case使用范围更广泛,可以对非等值条件以及NULL进行判断,而DECODE和SIMPLE CASE 要实现非等值判断比较麻烦,可以与SIGN函数配合使用。SIGN(N)描述:取数字N的符号,大于0返回1,小于0返回-1,等于0返回0 THEN和ELSE后面的数据类型必须一致。行转列1、decode行转列这就是最常见的行转列,主要原理是利
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 坐标系统与转换计算试题及答案
- 2025年工业互联网平台数据加密算法效能提升与行业应用研究报告
- 2025年多式联运信息平台在跨境电商物流中的智能化解决方案报告
- 2025年天然气水合物(可燃冰)开采技术国际合作案例分析报告
- 考点攻克自考专业(市场营销学)试题及答案(真题汇编)
- 2025年工业互联网平台IPv6技术升级对工业设备智能化升级的推动作用研究分析报告
- 2025至2030年中国金针菇市场全面调研及行业投资潜力预测报告
- 推拿治疗学考试题附答案详解【巩固】
- 解析卷辽宁省北票市中考数学真题分类(勾股定理)汇编定向训练试题
- 2025店面租赁合同模板:酒店式公寓租赁专版
- GB/T 44304-2024精细陶瓷室温断裂阻力试验方法压痕(IF)法
- 威亚合同协议书
- 2024至2030年中国苯甲酰氯行业发展状况及投资规划研究报告
- 1.1 鸦片战争 课件 2024-2025学年统编版八年级历史上册
- 如何申请非遗
- 越剧《梁山伯与祝英台》剧本
- 广东省广州市越秀区2024年八年级下学期期末英语试卷附答案
- JJF1030-2023温度校准用恒温槽技术性能测试规范
- 幼儿园低结构材料清单
- 注塑标准成型条件表电子表格模板
- 冶金传输原理课件
评论
0/150
提交评论