`
wangxiao5530
  • 浏览: 136606 次
  • 性别: Icon_minigender_2
  • 来自: 大连
社区版块
存档分类
最新评论

wm_concat实例应用

 
阅读更多

实例应用:

    查出相同编号的所有人的意见,没有填写意见时不显示。

    显示格式如下:

    id         note

    001    张三:意见一

             李四:意见二

    002    王五:意见一

 

    SQL如下:

   

 

create table T002
(
    APPROVAL_NO varchar2(200),
    APPROVAL_NAME varchar2(200),
    APPROVAL_LINE_NOTE varchar2(200)
)

insert into T002 values('1001','张三','意见一');
insert into T002 values('1001','李四','意见二');
insert into T002 values('1001','王五','意见三');
insert into T002 values('1001','小六','意见四');
insert into T002 values('1001','小七',null);
insert into T002 values('1002','小七','意见一');
insert into T002 values('1002','小八',null);

 

 

select APPROVAL_NO,replace(wm_concat(APPROVAL_NAME || ':' || APPROVAL_LINE_NOTE ),',' ,chr(10) || chr(13)  ) as note
from T002
where APPROVAL_LINE_NOTE is not null
group by APPROVAL_NO;

 

  

 

   执行结果如下:

 

  

APPROVAL_NO note
1001 张三:意见一
李四:意见二
王五:意见三
小六:意见四
1002 小七:意见一

 

 

实例2:

 

table1 有两个字段:
fld1, fld2,
10秒 19:00
15秒 21:00
15秒 20:30
15秒 20:00
30秒 22:00

写一个sql,取得如下结果集:
10秒(19:00)
15秒(20:00/20:30/21:00)
30秒(22:00)
要求15秒时,时间段按照20:00/20:30/21:00的顺序显示。

 

select sub.fld1,replace(wm_concat(sub.fld2),',','/') 
from (select fld1,fld2 from table1 order by fld1,fld2)sub
group by sub.fld1;

 

  

与wm_concat()操作相反的函数:

 

select regexp_substr('1001,1002,1003,1004,1005', '[^,]+', 1, level) from dual
connect by level <= 5

 

 

 

分享到:
评论

相关推荐

    重写oracle wm_contact函数

    根据提供的文件信息,本文将对重写Oracle中的`wm_concat`函数进行详细的解析与扩展讨论。此函数在Oracle数据库中用于连接多个字符串为一个单一的字符串。原生的`wm_concat`函数虽然能够满足基本需求,但在特定场景下...

    mysql group_concat()函数用法总结

    本文实例讲述了mysql group_concat()函数用法。分享给大家供大家参考,具体如下: group_concat(),手册上说明:该函数返回带有来自一个组的连接的非NULL值的字符串结果。比较抽象,难以理解。 通俗点理解,其实是...

    枢纽表达式PIVOT和UNPIVOT的简单用法,sql server 2005,列转成行

    本篇文章将介绍PIVOT和UNPIVOT的简单用法,并提供实例代码。 一、枢纽表达式PIVOT和UNPIVOT的概念 PIVOT和UNPIVOT是SQL Server 2005中新增的关系运算符,用于实现行列的旋转。PIVOT运算符将行旋转为列,并且可能...

    oracle实现多行合并的方法

    本文实例讲述了oracle实现多行合并的方法。分享给大家供大家参考。具体分析如下: 在写sql时,经常会有将某列的字段合并起来,比如将某人名下每个月的工资列示,但是每个人只能占一行。 像这种场景,可能用行列转换...

    SQL培训第一期

    8. **函数**:如聚合函数`COUNT`、`SUM`、`AVG`、`MAX`和`MIN`,以及`CASE WHEN`、`DECODE`、`NVL`、`NULLS FIRST/LAST`、`WM_CONCAT`、`EDIT_DISTANCE_SIMILARITY`等,用于数据处理和分析。 9. **存储过程**:预...

    oracle ORA-00988 missing or invalid password 错误

    例如,当你需要合并多行记录时,可以使用Oracle的WM_CONCAT函数,或者在Oracle 11g及以上版本中使用LISTAGG函数。在处理事务时,了解如何正确使用COMMIT、ROLLBACK和SAVEPOINT也是必不可少的。 对于开发人员来说,...

    TCK/TK组合教程

    10.2 eval内部的concat 10.3 uploevel命令 10.4 连接参数的命令 10.5 subst命令 第11章 规则表达式 11.1 规则表达式语法 11.2 regexp命令 11.3 常用的规则表达式 11.4 regsub命令 11.5 使用regsub...

Global site tag (gtag.js) - Google Analytics