• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > oracle—SQL技巧之(二)WMSYS.WM_CONCAT函数实现多行记录用逗号拼

oracle—SQL技巧之(二)WMSYS.WM_CONCAT函数实现多行记录用逗号拼

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了字符串,拼接函数,拼接等相关知识,希望本文的分享对您有所帮助

由于业务系统的交易记录有很多,常常有些主管需要看到所有的记录情况;又不想滚动;接下来介绍使用Oracle自带的函数 WMSYS.WM_CONCAT,进行拼接,感兴趣的朋友可以了解下

需求:
目前接触BI系统,由于业务系统的交易记录有很多,常常有些主管需要看到所有的记录情况,但是又不想滚动,想一眼就可以看到所有的,于是就想到了字符串拼接的形式。

解决方案:使用Oracle自带的函数 WMSYS.WM_CONCAT,进行拼接。
函数限制:它的输出不能超过4000个字节。

为了不让SQL出错,又可以满足业务的需求,超过4000个字节的部分,使用“。。。”
实现SQL如下:
代码如下:
CREATE TABLE TMP_PRODUCT
(PRODUCT_TYPE VARCHAR2(255),
PRODUCT_NAME VARCHAR2(255));

insert into tmp_product
select 'A','ProductA'||rownum from dual
connect by level < 100
union all
select 'B','ProductB'||rownum from dual
connect by level < 300
union all
select 'C','ProductC'||rownum from dual
connect by level < 400
union all
select 'D','ProductD'||rownum from dual
connect by level < 500
union all
select 'E','ProductE'||rownum from dual
connect by level < 600;
代码如下:
SELECT PRODUCT_TYPE,
WM_CONCAT(PRODUCT_NAME) || MAX(STR) AS PRODUCT_MULTI_NAME
FROM (SELECT PRODUCT_TYPE,
PRODUCT_NAME,
CASE
WHEN ALL_SUM > 4000 THEN
'...'
ELSE
NULL
END AS STR
FROM (SELECT PRODUCT_TYPE,
PRODUCT_NAME,
SUM(VSIZE(PRODUCT_NAME || ',')) OVER(PARTITION BY PRODUCT_TYPE) AS ALL_SUM,
SUM(VSIZE(PRODUCT_NAME || ',')) OVER(PARTITION BY PRODUCT_TYPE ORDER BY PRODUCT_NAME) AS UP_SUM
FROM TMP_PRODUCT)
WHERE (UP_SUM <= 3998 AND ALL_SUM > 4000)
OR ALL_SUM <= 4001)
GROUP BY PRODUCT_TYPE
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • mysql整数数据类型深入解析
  • SQL字符串以及数字常用操作汇总
  • MySQL笔记之字符串函数的应用
  • 使用java处理字符串公式运算的方法
  • MySQL慢查询查找和调优测试
  • mysql截取函数常用方法使用说明
  • MySQL里实现类似SPLIT的分割字符串的函数
  • mysql查询字符串替换语句小结(数据库字符串替换)
  • mysql中取字符串中的数字的语句
  • MySQL的字符串函数使用说明

相关文章

  • 2018-12-05MYSQL学习总结(一):MYSQL安装
  • 2018-12-05MySQL多实例的配置和管理详细
  • 2018-12-05分享一条insert语句批量插入多条记录教程
  • 2018-12-05安装mysql服务启动失败的原因
  • 2017-05-11mysql导出指定数据或部份数据的方法
  • 2018-12-05使用MySQL的LAST_INSERT_ID来确定各分表的唯一ID值
  • 2018-12-05limit Mysql查询语句使用方法
  • 2017-05-11在MySQL中使用GTIDs复制协议和中断协议的教程
  • 2018-12-05MySQL帮助的使用
  • 2018-12-05数据结构简明备忘录 线性表

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • Mysql5.7中关于JSON函数操作的实例详解
    • php之MySQL数据库优化策略的详解
    • 使用mysql_fetch_object()函数获取结果集中一行作为对象(PHP操作MySQL数据库的方法五)
    • 解决mysql 1040错误Too many connections的方法
    • SQL SERVER 的SQL语句优化方式小结
    • mysql 数据库中索引原理分析说明
    • 关于mysql 查看当前使用的配置文件my.cnf的方法讲解
    • Mysql的loadfile()常见用法
    • mysql 5.7版本是怎么修改密码的?
    • 条件查询如何使用?总结条件查询实例用法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有