达梦sql的一些学习,达梦使用oracle的函数方式实现将字符串按照某个符号分割成多行(eg:regexp 您所在的位置:网站首页 listagg和wmconcat 达梦sql的一些学习,达梦使用oracle的函数方式实现将字符串按照某个符号分割成多行(eg:regexp

达梦sql的一些学习,达梦使用oracle的函数方式实现将字符串按照某个符号分割成多行(eg:regexp

2023-08-11 06:03| 来源: 网络整理| 查看: 265

1.wm_concat

字符串拼接函数,默认是以逗号结尾进行分割,并且无法改变。示例:

select template_id, wm_concat(template_content) as "templateContent" from SMS_TEMPLATE_ITEM group by template_id;

 

2.listagg

字符串拼接函数,由于wm_concat是只能以逗号结尾进行分割,在实际应用中有些许不变,因此又写了一个函数能够灵活变通。

格式:([,]) WITHIN GROUP ()

示例:

select TEMPLATE_ID, listagg(template_content,';') WITHIN group (order by TEMPLATE_ID) from SMS_TEMPLATE_ITEM group by TEMPLATE_ID;

 

2.创建联合唯一约束

示例:

alter table table_name add constraint AGE_NAME_UNIQUE unique (AGE,NAME);

删除唯一约束

alter table COUNTER_DATA drop constraint TERM_NO_REP_DATE;

3.达梦使用oracle的函数方式实现将字符串按照某个符号分割成多行

参考:如何在Oracle中将字符串拆分为多行? - 问答 - 云+社区 - 腾讯云 (tencent.com)

WITH temp AS ( SELECT 108 NAME, 'test' Project, 'Err1, Err2, Err3' Error FROM DUAL UNION ALL SELECT 109, 'test2' Project, 'Err1' FROM DUAL ) SELECT DISTINCT NAME , Project, trim( regexp_substr ( str, '[^,]+', 1, LEVEL )) str FROM ( SELECT NAME, Project, Error str FROM temp ) t CONNECT BY instr( str, ',', 1, LEVEL - 1 ) > 0 ORDER BY NAME

 

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有