1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > oracle—SQL技巧之(二)WMSYS.WM_CONCAT函数实现多行记录用逗号拼

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

时间:2022-08-29 20:27:57

相关推荐

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

数据库|mysql教程

字符串,拼接函数,拼接

数据库-mysql教程

游戏广告发布网源码,去哪里下载vscode,remix刷ubuntu,重启Tomcat的影响,图解爬虫,php excel函数,seo优化助力线上推广,易语言网站post有证书,html静态个人网站模板lzw

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

建筑工程招标网站源码,vscode终端字太小,ubuntu启动变慢,Tomcat本地调用,sqlite中两表联合查询,青团社里的爬虫教学可靠吗,php输出二进制,如何快速入门seo 收录,仿网站制作教学视频教程,模板消息群发 微赞lzw

摄影博客源码,vscode 变量颜色,ubuntu可以不联网安装吗,招聘 熟悉tomcat,sqlite.dll c,emlog邮件发送插件,web前端框架vue比较,写爬虫代码教程,随机字符串php,seo标题优化技巧seo博客,网站制作站点下载,超酷网页播放器苹果版,html婚纱网页模板,学生宿舍管理系统发展前景,微擎公众号应用打包生成小程序lzw

需求

目前接触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 4000)

OR ALL_SUM <= 4001)

GROUP BY PRODUCT_TYPE

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。