Oracle 函数 之 wm_concat()】的更多相关文章

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…
wm_concat() 把列转换成一行一列显示,使用wm_concat函数可以显示在一行一列. --1 建表 create table province_city ( province varchar2(100), city varchar2(100) ); --2 插入数据 insert into province_city (province, city)values ('陕西', '西安'); insert into province_city (province, city)values…
昨天在测试的时候发现,开发人员写的一段程序放在开发库中是好的,但是放在测试库中就会有问题.开发人员一直找不到问题的原因在哪里.于是就花了点时间协助开发人员来找问题的根本原因. 通过一些技术手段,定位到问题是由一个SQL语句引起的. SQL语句如下: WITH PXQ_TASK_TEMP AS (SELECT A.DISTRIBUTE_DATE,          A.APP_NO,          A.TASK_ID,          A.TASK_NO,          A.ACTUAL…
对于将一列多值合并成一行问题,oracle提供了wmsys.wm_concat和listagg函数处理此问题,下面我们以emp表中数据为例,看看两函数的使用方法 假设我们需要统计每种job下面有哪些员工,要求在一行显示员工姓名,首先看看emp表中的数据: ①利用listagg函数处理 ②利用wm_concat函数处理 wm_concat函数作用:除了处理多行合并问题,还给我们直接根据某个表的字段建立视图带来方便 ③注意分析函数中的partition by 与group by 的区别 下面我们看看…
[函数]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的联合使用 ④…
 [函数]wm_concat包的订制   1  BLOG文档结构图     2  前言部分   2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 利用系统包创建WM_CONCAT函数(重点) ② ORA-00904: "wm_concat":invalid identifier错误解决 ③ 订制自己的WM_CONCAT函数 ④ listagg分析函数的使用 ⑤ ORA-01489: result o…
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函数认识的不足,于是集中月余时间专注于oracle函数,小有心得不敢私藏,发之与诸公共享. 本文并不准备介绍全部的oracle函数,当前情势下,俺也还没这个时间,需要学习的东西太多了,要把多数时间花在学习经常能用上的技术方面:),所以如 果是准备深入了解所有oracle函数的朋友,还是去关注:Oracle SQL Reference官方文档更靠谱一些. 本文…
oracle函数或者叫存储过程,在实际的开发过程中对于复杂的业务需求是非常有用的,非常有效率的也是非常好玩儿的一个技术点. 平常在开发过程中对于CRUD功能较多.一般SQL即可应付,大不了就是长一点而已.但是遇到复杂业务需求,在Java代码中开发略显混乱时,函数将可以作为一个非常优秀的实现方式,在数据库中对业务进行处理. 下面介绍一下oracle函数的集中语法,小弟学艺不精,如有遗漏,请不吝指正: oracle语法在编写过程中其实比较简单,首先它是一个脚本语言,也叫作解释性语言,脚本语言如pyt…
工作中经常遇到很多需求是这样的,根据条件汇总某些字段,比如我遇到的是,我们公司有三个投资平台,同一个客户拿手机号在三个平台都注册了,但注册过的用户名不一样,显示的时候需要根据手机号显示所有注册过的名称.(我用的是oracle数据库) 1.原始数据是这样的,如图: 2.要求显示成这样,如图: 我查了一下oracle函数,这个listagg函数就可以满足它,在网上看了看,都是介绍listagg这个函数的使用方法,看起来真费劲,于是在这里我简明扼要的说明一下 3.具体实现是这样的,也就不废话,看完例子…
我们都知道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…
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…
一.wm_concat函数 wm_concat能够实现同样的功能,但是有时在11g中使用需要用to_char()进行转换,否则会出现不兼容现象(WMSYS.WM_CONCAT: 依赖WMSYS 用户,不同oracle环境时可能用不了,返回类型为CLOB,可用substr截取长度后to_char转化为字符类型). 测试用表test_org_bak select * from test_org_bak; 1.:行转列(默认逗号隔开) select wm_concat(level_four_name)…
1.通过 10g 所提供的 WMSYS.WM_CONCAT 函数即可以完成 行转列的效果 select group_code, wm_concat(display_title) from DR_OPM_DATASET_RELATED group by group_code 网上看到例子: CREATE TABLE tab_name(ID INTEGER NOT NULL PRIMARY KEY,cName VARCHAR2(20));CREATE TABLE tab_name2(ID INTEG…
这个是因为字符集的问题,和空值是没关系的.其实已经取到了数据,可以验证一下返回的不是0,但是由于这个里面有个chr(0)字符,而且可能第一个字符就是chr(0),所以就显示得怪异的空现象.至于为何会出现chr(0),这就是因为WM_CONCAT函数的问题了,可能它对于多种字符集的处理不是很好吧,所以如果里面的参数不用to_char处理一下,就有可能出现乱码甚至为空的现象. 像这样: wmsys.wm_concat(to_char(tab.SYSTEM_SYMBOL)) AS SYSTEM_SYM…
oracle12G中不支持wm_concat,就改用:listagg(合并字段,'连接符号') within group (order by 字段) 来实现列转行…
例.select TO_CHAR(WMSYS.WM_CONCAT(ID)) from patrol_data_content  where patrol_unit_id = '1628D189543B441C998EA1F396E611BD'…
http://blog.itpub.net/31392094/viewspace-2149577/…