用到Oralce10g以后增加的函数wmsys.wm_concat 例如这张表的有两个字段,要按airport_id合并成两行可用sql语句 select airport_id,   wmsys.wm_concat( account) from AIRPORT_MODIFY group by airport_id 结果为: 非常简单,美中不足的是合并结果没有排序,解决排序问题最简单的办法就是在合并列前加上distinct 此外,如果合并列结果出现乱码,需要在合并列前加上to_char(),如wm…
遇到问题:多表关联查询,有一个要求是,同一保单号,对应多个投资产品Code.以及投资比例,每一个保单号有一个总的投资金额.要求同一保单号那一行,只有第一个总金额有值,剩下的code对应的总金额置空. 简述问题:如果本行记录和上一行记录,某字段值相同,则怎么处理,另外一列的值. 样例SQL如下. select rownum 序号 , ld.comcode 分公司, 'B2B' 来源, ed.tranno 银行交易号, (select bb.newcontno from b2b_contno bb…
原帖:http://www.cnblogs.com/nayitian/p/3231734.html wmsys.wm_concat Definition: The Oracle PL/SQL WM_CONCAT function is used to aggregate data from a number of rows into a single row, giving a list of data associated with a specific COMMENT_BODY. In ef…
数据库结构如图: 而我想让同一个人的不同成绩变成此人在这一行不同列上显示出来,此时分为2中展现: 第一种展现如图----[多行变一列](合并后的数据在同一列上): sql如下: select name ,group_concat(sore Separator ';') as score from stu group by name 第二种展现如图----[多行变多列](合并后的数据在不同列上): sql如下: SELECT name , MAX(CASE type WHEN '数学' THEN…
hive一行变多行及多行变一行 场景 name alias zhaoqiansun abc def ghi 处理数据时需要将上表处理成为下面的形式: name alias zhaoqiansun abc zhaoqiansun def zhaoqiansun ghi 办法 使用Lateral view和explode()来实现,命令如下: hive> select name, single_alias from test lateral view explode(split(alias, ' '…
Oracle数据库多行记录转换一行并排序方法 在ORACLE数据库查询中,我们通常会要求用到将多行记录转换成一行并排序,这时候我们自然会想到Oracle的一个“wx_concat”函数,可以将多行记录转换成一行并排序,下面我们来使用Oracle数据库测试一下结果及效果,做一个简单的创建表和查询表如下图: 插入并查询表数据: 下面我们使用wm_concat函数进行合并行并排序如下图所示: 编号为1的数据合并后: 可以看出没有问题都是按照顺序进行排序,下面看下编号为2的数据合并后的结果: 从编号2可…
在数据库的开发过程中,我们可能会遇到这样的需求,获取一行记录中某几个字段的最大值或者是最小值,oracle给我们提供了解决这种需求的函数,如下所示:   greatest(col1, col2, col3...)取得col1, col2, col3...字段中是大的值 least(col1, col2, col3....)同理,取得col1,col2,col3...字段中最小的值   如表A内容如下: col1   col2    col3-----------------------30   …
Sql代码 select t.rank, t.Name from t_menu_item t; 10 CLARK    10 KING    10 MILLER    20 ADAMS    20 FORD    20 JONES    20 SCOTT    20 SMITH    30 ALLEN    30 BLAKE    30 JAMES    30 MARTIN    30 TURNER    30 WARD -------------------------------- 我们通过…
背景        还是那个问题,部分程序员喜欢用sql解决问题.发现了这个函数,当初真是大喜过望,现在是哭笑不得.10g支持这个函数,11好像不支持了,而且只有oracle支持,其实自己写个通用方法,既为数据库通用有保证,又为后期维护提供便利. 不建议用这个函数.但是视图活存储过程.临时统计之类的还好可以用用. wmsys.wm_concat…
在工作中遇见的oracle知识,多行合并成一行,记录一下 1.取出需要的数据,代码: (SELECT to_char(m.f_meetdate, 'yyyy-MM-dd'), decode(nvl(m.f_meetsourceid, ,'(备份)'), m.f_meetingresult FROM tb_guar_meetrecord m and m.f_billcode = 'period') 取出的数据: 2.现在想把这两行数据合并成一行,并且一行的多字段合并成一个字段: 代码: (SELE…