-- Start

假设有下面的表,每个人都有可能有多个 Email。

CREATE TABLE EMPLOYEE

(

EMPLOYEE_ID NUMBER(10) NOT NULL,

NAME VARCHAR2(20) NOT NULL

);

CREATE TABLE EMAIL

(

EMPLOYEE_ID NUMBER(10) NOT NULL,

EMAIL VARCHAR2(20) NOT NULL

);

INSERT INTO EMPLOYEE VALUES (1, '张三');

INSERT INTO EMAIL VALUES (1, 'san.zhang@163.com');

INSERT INTO EMAIL VALUES (1, 'san.zhang@qq.com');

INSERT INTO EMPLOYEE VALUES (2, '李四');

INSERT INTO EMAIL VALUES (2, 'li.si@163.com');

INSERT INTO EMAIL VALUES (2, 'li.si@qq.com');

现在让你写一个 SQL 返回下面的结果集,怎么办?

EMPLOYEE_ID NAME EMAIL

1 张三 san.zhang@163.com;san.zhang@qq.com

2 李四 li.si@163.com;li.si@qq.com

不会了吧,其实很简单,这是因为 Oracle 提供了一个叫做 LISTAGG 的函数,如下。

SELECT

E.EMPLOYEE_ID,

E.NAME,

LISTAGG(A.EMAIL, ';') WITHIN GROUP (ORDER BY A.EMAIL) EMAIL

FROM

EMPLOYEE E,

EMAIL A

WHERE

E.EMPLOYEE_ID = A.EMPLOYEE_ID

GROUP BY

E.EMPLOYEE_ID,

E.NAME;

--更多参见:Oracle SQL 精萃

-- 声明:转载请注明出处

-- Last edited on 2015-02-25

-- Created by ShangBo on 2015-02-25

-- End

oracle聚合字符串,Oracle 聚合字符串相关推荐

  1. oracle 数据有引号,oracle插入字符串数据时字符串中有'单引号问题

    使用insert into(field1,field2...) values('val1','val2'...)时,若值中有单引号时会报错. 处理方法:判断一下val1,val2中是否含有单引号,若含 ...

  2. oracle 并接去掉字符串,ORACLE删除字符-TRIM字符截取-substr查找字符-instr

    TRIM函数,最简单的功能就是来去除字符串的行首和行尾的空格,返回值类型是varchar2; 1.TRIM函数的完整语法描述 TRIM([{{LEADING | TRAILING | BOTH} [ ...

  3. oracle正则表达式截断,在oracle中使用正则表达式截取字符串

    在oracle中使用正则表达式截取字符串 Sql代码 --以下两条语句,将summary按-分解为两段字符串 regexp_substr(summary, '[^-]+', 1, 1) as _wor ...

  4. Oracle中Null与空字符串''的区别

    http://read.newbooks.com.cn/info/172049.html Oracle中Null与空字符串''的区别 来源:CSDN   作者:jsjzzh   发布时间:2007-1 ...

  5. Oracle Q-quote delimiter Quote(q) 字符串原样输出

    在sql查询中,我们经常需要原样输出字符串,如果字符串中含有大量的单引号.双引号或者特殊字符,那么需要用单引号转义拼接字符串,这样会非常的麻烦. oracle提供了一个Q-quote的表达式来原样输出 ...

  6. java oracle 连接字符串函数_通过shell来比较oracle和java中的字符串使用

    这些准备工作齐了之后,我们来从Java中的字符串使用入手来比较一下oracle中对于字符串的处理. java中有如下的一些函数,我会依次来做比较. public char charAt(int ind ...

  7. oracle数据库的拼接字符串,Oracle数据库拼接字符串

    Ora-03113\Ora-03114与Oracle In 拼接字符串的问题 刚深入接触Oracle不久(大学里以及刚参加工作时学到的Oracle知识只能算是皮毛),因为之前使用SqlServer有将 ...

  8. oracle将字符串的日期格式化,oracle格式化字符串 oracle 怎么把字符串转换成日期...

    Oracle数据库中如何将字符串格式化为日期 可以用 to_date('日期类型字符串','要转化的日期类型')函数进行日期格式转换 sql:select to_date('1990-12-12 12 ...

  9. 数据库连接字符串 mysql_数据库连接字符串(MySQL,SQL Server,Oracle)

    数据库连接字符串(在java中使用) =====MySQL===== String driverClass="com.mysql.jdbc.Driver; String url=" ...

  10. oracle 全局搜索字符串,oracle操作字符串:拼接、替换、截取、查找 _ 学编程-免费技术教程分享平台...

    1.拼接字符串 1)可以使用"||"来拼接字符串 1 select '拼接'||'字符串' as str from dual 2)通过concat()函数实现 1 select c ...

最新文章

  1. Tcl学习之--列表|字典
  2. 宇通客车java_6米采血车
  3. kafka身份认证 maxwell_聊聊MaxwellKafkaProducer
  4. java匿名内部类举例和内部类举例
  5. mstem函数怎么定义_PYTHON--函数定义
  6. OpenCV字母识别letter recognition的实例(附完整代码)
  7. java创建变量的过程_java 对象的创建过程
  8. python 进程 线程 协程
  9. 借款条和还款条的写法(附模板)
  10. 【问】安装SQLserver2000 SP4补丁报错提示0*80070005.程序未能注册
  11. python 实现图片批量加入水印!
  12. charles安装证书并信任证书,仍然无法获取手机上的请求
  13. esp32 smtp发送邮件micropython
  14. 成套修炼,效果更佳---2007年的阅读计划
  15. 【调剂】2022年太原科技大学力学专业接收工学调剂生
  16. 大数据的价值是如何得以彰显的?
  17. 给51单片机初学者的建议
  18. 深度复盘手机三雄:苹果、小米、华为,为何5G最后留下的是华为?
  19. 无线智能调频广播技术的深度解析
  20. 安卓版身份证识别技术

热门文章

  1. Web核心技术-服务器端技术
  2. 8.性能之巅 洞悉系统、企业与云计算 --- 文件系统
  3. 16. go get
  4. jQuery判断Dom对象是否存在
  5. win10 忘记登录密码后 修改密码
  6. Install Kernel 3.10 on CentOS 6.5
  7. MySQL 性能优化神器 Explain 使用分析
  8. 【转】和菜鸟一起学linux之DBUS基础学习记录
  9. CF 2A-Winner
  10. 该来的还是要来,数据挖掘