Coalesce().greatest().least() oracle比较一列的数据大小时,我们一般使用max()/min()函数,比较一行的最大值或者最小值时,使用函数Coalesce()/greatest()/least(). 测试数据准备 create table stu_score( stu_id varchar2(4), math integer default 0, --姓名 english integer default 0, --性别 1 男 2 女 0 未知 chinese…
感于总有些网友提出一些非常基础的问题,比如有没有实现某某功能的函数啊,某某函数是做什么用的啊,格式是什么等等,同时也感受到自己对oracle函数认识的不足,于是集中月余时间专注于oracle函数,小有心得不敢私藏,发之与诸公共享. 本文并不准备介绍全部的oracle函数,当前情势下,俺也还没这个时间,需要学习的东西太多了,要把多数时间花在学习经常能用上的技术方面:),所以如 果是准备深入了解所有oracle函数的朋友,还是去关注:Oracle SQL Reference官方文档更靠谱一些. 本文…
1. Oracle的replace函数与translate函数 replace函数是在字符串级别的代替,对应字符串一一替换 SQL> SELECT REPLACE('accd','cd','ef') from dual; REPLACE('ACCD','CD','EF') ------------------------- acef translate函数是在字符级别的代替,对应字符一一替换   translate(expr,from_string,to_string)  SQL> selec…
oracle函数或者叫存储过程,在实际的开发过程中对于复杂的业务需求是非常有用的,非常有效率的也是非常好玩儿的一个技术点. 平常在开发过程中对于CRUD功能较多.一般SQL即可应付,大不了就是长一点而已.但是遇到复杂业务需求,在Java代码中开发略显混乱时,函数将可以作为一个非常优秀的实现方式,在数据库中对业务进行处理. 下面介绍一下oracle函数的集中语法,小弟学艺不精,如有遗漏,请不吝指正: oracle语法在编写过程中其实比较简单,首先它是一个脚本语言,也叫作解释性语言,脚本语言如pyt…
[函数]Oracle函数系列(2)--数学函数及日期函数 1  BLOG文档结构图 2  前言部分 2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 数学函数 ② trunc和round函数 ③ 常用日期函数 Tips: ① 本文在itpub(http://blog.itpub.net/26736162).博客园(http://www.cnblogs.com/lhrbest)和微信公众号(xiaomaimia…
关于oracle函数listagg的使用说明 工作中经常遇到客户提出这样的需求,希望在汇总合并中,能够把日期逐个枚举出来. 如图,原始数据是这样的: 客户希望能够实现这样的汇总合并: 那么通常我会使用listagg这个函数,但是好多网上都是系统的全面的介绍listagg这个函数的使用方法,看起来很费力气.在这里我简明扼要的说明一下 实现这个需求的语句是这样的: select name, listagg(ddate,' / ') within group (order by name) as dd…
在调用Oracle函数时为了让PL/SQL 函数返回数据的多个行,必须通过返回一个 REF CURSOR 或一个数据集合来完成.REF CURSOR 的这种情况局限于可以从查询中选择的数据,而整个集合在可以返回前,必须进行具体化. 9i 通过引入Oracle函数中的管道化表函数纠正了后一种情况.表函数是返回整个行的集(通常作为一个集合)的函数,可以直接从 SQL 语句中进行查询,就好像它是一个真正的数据库表一样.管道化表函数与之相似,但是它像在构建时一样返回数据,而不是一次全部返回.管道化表函数…
--oracle 函数 --lower(char):将字符串转换为小写格式 --upper(char):将字符串转换为大写格式 --length(char):返回字符串的长度 --substr(char,m,n):取字符串的子串 --用户名小写 select lower(ename),sal from emp; --用户名大写 select upper(ename),sal from emp; --显示正好为五个字符用户名 ; --显示所有员工姓名的前三个字符 取的是从第1个字符开始,往数后面3…
oracle函数和存储过程有什么区别 1. 返回值的区别,函数有1个返回值,而存储过程是通过参数返回的,可以有多个或者没有 2.调用的区别,函数可以在查询语句中直接调用,而存储过程必须单独调用. 函数一般情况下是用来计算并返回一个计算结果而存储过程一般是用来完成特定的数据操作(比如修改.插入数据库表或执行某些DDL语句等等) 参数的返回情况来看:      如果返回多个参数值最好使用存储过程,如果只有一个返回值的话可以使用函数: 从调用情况来看:      如果在SQL语句(DML或SELECT…
Oracle函数sys_connect_by_path 详解 语法:Oracle函数:sys_connect_by_path 主要用于树查询(层次查询) 以及 多列转行.其语法一般为:       select ... sys_connect_by_path(column_name,'connect_symbol')  from table        start with ... connect by ... prior理解:对于数据库来说,根节点并不一定是在数据库中设计的顶级节点,而是st…
前言: 最近处理一个特殊的问题,需要用到汉字自动转换拼音的功能. 解决: 在这里找了不少资料,都是有所缺陷,而且也好像很绕.其实是一个很简单的东东.后来还是自己写了一个函数获取.分享出来,给有需要的XD了. ------------- 这是一个比较简单的汉字转拼音的Oracle函数写法. 原理是,先将汉字对应的拼音存入一个表格. 然后对这个表格对应的存在的汉字找出其拼音,然后输出. 这样子做,容易维护,而且也容易扩展.如果万一发现哪个字少了,直接增加表格记录即可. 步骤如下: ----建立汉字拼…
oracle函数或者叫存储过程,在实际的开发过程中对于复杂的业务需求是非常有用的,非常有效率的也是非常好玩儿的一个技术点. 平常在开发过程中对于CRUD功能较多.一般SQL即可应付,大不了就是长一点而已.但是遇到复杂业务需求,在Java代码中开发略显混乱时,函数将可以作为一个非常优秀的实现方式,在数据库中对业务进行处理. 下面介绍一下oracle函数的集中语法,小弟学艺不精,如有遗漏,请不吝指正: oracle语法在编写过程中其实比较简单,首先它是一个脚本语言,也叫作解释性语言,脚本语言如pyt…
工作中经常遇到很多需求是这样的,根据条件汇总某些字段,比如我遇到的是,我们公司有三个投资平台,同一个客户拿手机号在三个平台都注册了,但注册过的用户名不一样,显示的时候需要根据手机号显示所有注册过的名称.(我用的是oracle数据库) 1.原始数据是这样的,如图: 2.要求显示成这样,如图: 我查了一下oracle函数,这个listagg函数就可以满足它,在网上看了看,都是介绍listagg这个函数的使用方法,看起来真费劲,于是在这里我简明扼要的说明一下 3.具体实现是这样的,也就不废话,看完例子…
1.oracle函数 WMSYS.WM_CONCAT的使用 如图,将图1的结果变成图2的结果,使用函数 WMSYS.WM_CONCAT 即可. 查询语句需要配合使用group by select aa,wmsys.wm_concat(t1.name) from ( select t.name,to_char(t.createdate,'yyyy-mm-dd') aa from td_user t where t.td_conference_id = 3218 and t.status = 1 a…
我们都知道Oracle函数在实际的应用中比较广泛,对其的实际操作与其相关功能也是颇为熟悉,但是你了解Oracle函数怎样使将字符串装换为小写的格式的具体操作吗?如果你有兴趣的话你就可以浏览以下的文章. Oracle函数: Lower(char):将字符串装换为小写的格式 Upper(char):将字符串装换为大写的格式 length(char):返回字符串的长度 substr(char,m,n):从m开始截取n个字符串 1)查询emp表,名字用小写显示: select lower(ename)…
今天折腾了3个小时,为一个以前不知道的oracle函数机制: 在sql查询中,如果一个查询未能获取记录,oracle不会报错 如select aa from bb where 1=2; 但在oracle函数中,如果是赋值语句,就会报错ORA-01403: no data found 数据未找到 如select aa into kk from bb where 1=2; 今天的错误就在这里,主要是弄混了字段null和记录为空的null,而且是在递归调用中,sql的断点调试其实是直接进入了最后一层递…
Oracle函数大全下载 是一个压缩包,里面是一个chm格式的帮助文档,很实用.…
BayaiM__ oracle函数_01   Oracle函数--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 行函数:--ABS求绝对值SELECT ABS(-1) FROM DU…
BayaiM__ oracle函数_02   Oracle中的字符串函数------------------------------------------------------------------------------------------------------------------------------------------------------------ lpad()函数从左边对字符串使用指定的字符进行填充 rpad()函数从右边对字符串使用指定的字符进行填充 low…
BayaiM__ oracle函数_03_fjfl   select  TO_DATE(trunc(F_GXSJ),'YYYY-MONTH-DD')  from fsxx_dx_log_new      where trunc(F_GXSJ)=TO_DATE()select  trunc(F_GXSJ)  from fsxx_dx_log_new    -- 2012-10-26select  SUBSTR(TO_CHAR(trunc(F_GXSJ),'YYYY-MM-DD'),6,2)  fr…
[函数]Oracle函数系列(1)--字符函数 1  BLOG文档结构图 2  前言部分 2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 常见字符函数(lower.upper.initcap.concat.substr.length.intr.lpad.rpad.trim.chr.ascii.replace.translate)的使用 ② 判断字符串中是否含有汉字 ③ substr和instr的联合使用 ④…
jpa-spec github: https://github.com/wenhao/jpa-spec 使用这个框架可以简化我们拼条件的复杂度,如下代码: public Page<Person> findAll(SearchRequest request) { Specification<Person> specification = Specifications.<Person>and() .eq(StringUtils.isNotBlank(request.getN…
在oracle中用nvl和nvl2函数来解决为空的情况,例如,如果奖金为空,则为它指定一个数.也就是nvl(奖金字段,指定的奖金),但是两个的类型要一致. 1)nvl()函数 SQL> select comm,nvl(comm,111) from emp;如果comm为空,则将它设置为111: 2)nvl2()函数(类似三目运算符) SQL> select comm,nvl2(comm,666,555)from emp;如果comm不为空返回666,为空返回555,如果第二个参数和第三个参数类…
[功能]返回列表中第一个非空的表达式,如果所有表达式都为空值则返回1个空值 [参数]c1, c2, ...,cn,字符型/数值型/日期型,必须类型相同或null [返回]同参数类型 [说明]从Oracle 9i版开始,COALESCE函数在很多情况下就成为替代CASE语句的一条捷径 [示例] select COALESCE(null,3*5,44) hz from dual; 返回15 select COALESCE(0,3*5,44) hz from dual; 返回0 select COAL…
1.nvl(exp1,exp2)该函数是处理表达式中的空值: 假设表达式exp1是空值,则该函数返回表达式exp2的值, 假设表达式exp1没有是空值,则该函数返回表达式exp1的值. 2.nvl2(exp1,exp2,exp3)该函数决定exp1是空值和非空值时返回哪个表达式:假设exp1为空值,则返回exp3假设exp1非空,返回exp2. 3.coalesce(exp1,exp2,.....)该函数 返回 表达式中第一个非空值,假设都是空值,则返回空值,表达式最少是两个. 测试语句: --…
COALESCE 含义:COALESCE是一个函数, (expression_1, expression_2, ...,expression_n)依次参考各参数表达式,遇到非null值即停止并返回该值.如果所有的表达式都是空值,最终将返回一个空值.使用COALESCE在于大部分包含空值的表达式最终将返回空值. 用法:COALESCE(expression_1, expression_2, ...,expression_n) 例子 1.SELECT COALESCE(NULL,NULL,3,4,5…
[功能]返回表达式列表中值最大的一个.如果表达式类型不同,会隐含转换为第一个表达式类型. [参数]exp1……n,各类型表达式 [返回]exp1类型 [示例] SELECT greatest(10,32,'123','2006') FROM dual; SELECT greatest('kdnf','dfd','a','206') FROM dual;…
http://jingyan.baidu.com/article/fa4125acaf898e28ac7092b9.html…
(一).数值型函数(Number Functions) 数值型函数输入数字型参数并返回数值型的值.多数该类函数的返回值支持38位小数点,诸如:COS, COSH, EXP, LN, LOG, SIN, SINH, SQRT, TAN, and TANH 支持36位小数点.ACOS, ASIN, ATAN, and ATAN2支持30位小数点. 1.ABS(n) 返回数字的绝对值 例如:SELECT ABS(-1000000.01) FROM DUAL; 2.COS(n) 返回n的余弦值 例如:S…
F.1字符函数--返回字符值 这些函数全都接收的是字符族类型的参数(CHR除外)并且返回字符值.除了特别说明的之外,这些函数大部分返回VARCHAR2类型的数值.字符函数的返回类型所受的限制和基本数据库类型所受的限制是相同的,比如: VARCHAR2数值被限制为2000字符(ORACLE 8中为4000字符),而CHAR数值被限制为255字符(在ORACLE8中是2000).当在过程性语句中使用时,它们可以被赋值给VARCHAR2或者CHAR类型的PL/SQL变量. ASCII 语法:ascii…