`

oralce 将一个字符串里的数据按逗号分隔去重再拼接成一个新的字符串

阅读更多

sql结果集某列值显示如下:

'00010430, 00228290, 07046884,07046884, 07383953'

 希望显示的结果

'00010430, 00228290,07046884, 07383953'

 

新建一个function 实现此功能

create or replace
FUNCTION        "SF_SPLIT_ACCOUNT_ID_LIST" (
    account_id_list IN VARCHAR2
)RETURN VARCHAR2 AS
v_account_id_list VARCHAR2(5000);

BEGIN

WITH ACCTS AS (
SELECT DISTINCT str from (
SELECT REGEXP_SUBSTR(replace(account_id_list,', ',','), '[^,]+', 1, LEVEL, 'i') AS STR  
  FROM DUAL  
CONNECT BY LEVEL <=  
           LENGTH(replace(account_id_list,', ',',')) 
           - LENGTH(REGEXP_REPLACE(replace(account_id_list,', ',','), ',', ''))+1))
SELECT wm_concat(STR) INTO v_account_id_list FROM ACCTS;

RETURN v_account_id_list;

END SF_SPLIT_ACCOUNT_ID_LIST; 

 

分享到:
评论

相关推荐

    oracle实现行转列功能,并使用逗号进行隔开拼接,成为一条数据.pdf

    这个示例代码将 bp_marking 表中的 sfc_no 字段与对应的所有 mark_operation_id 字段合并成一个字符串,并用逗号分隔每个字段的值。 如果需要去重,可以使用 DISTINCT 关键字,示例代码如下: ```sql SELECT sfc_no...

    Oracle字段转字符串/多行记录合并/连接/聚合字符串的几种方法

    这将按照`column2`的顺序生成一个带有逗号分隔的字符串。 7. **用户定义的聚合函数 (UDAF)**: 如果内置函数不能满足需求,还可以创建自定义的聚合函数。这需要编写PL/SQL包,包含初始化、累积和最终化步骤。 在...

    oracle 存储过程中某入参是逗号分隔,并且参数要使用在in过滤语句中

    oracle存储过程中入参是逗号分隔,并且参数要使用在in过滤语句中查询数据。处理的方法与实现

    Oracle 两个逗号分割的字符串,获取交集、差集(sql实现过程解析)

    这段SQL代码首先使用`REGEXP_SUBSTR`函数将每个字符串分割成单独的元素,然后通过`CONNECT BY`子句生成一个包含所有元素的行集。最后,`INTERSECT`操作符找出两个行集的交集部分,即共同的元素"2"。 接下来是获取...

    oracle查询表的所有列并用逗号隔开

    2. **WM_CONCAT 函数**:这是Oracle提供的一个聚合函数,用于将一组字符串连接成一个字符串,中间以指定的分隔符隔开。在这个例子中,我们使用它来连接列名,并以逗号作为分隔符。 #### 实现步骤 为了实现上述目标...

    oracle中将列拼接字段函数

    这段代码的作用是从`fin_cbs_manager`表中选取`contractid`列的所有值,并使用`WMSYS.WM_CONCAT`函数将这些值拼接成一个字符串。默认情况下,`WMSYS.WM_CONCAT`会使用逗号`,`作为分隔符,但如果需要自定义分隔符,则...

    Oracle字段根据逗号分割查询数据的方法

    在Oracle数据库中,有时我们遇到一个特殊的查询需求,即字段中的值是以逗号分隔的字符串,我们需要根据每个单独的值来查询数据。在这种情况下,简单的`LIKE`查询无法满足需求,因为`LIKE`通常用于匹配模式,而不是...

    重写oracle wm_contact函数

    以上SQL语句将返回一个由所有名字组成的字符串,名字之间用逗号分隔。 ### 总结 通过对Oracle内置`wm_concat`函数的重写,我们不仅增强了其功能,还提高了其在特定场景下的适用性和性能。通过自定义类型和函数的...

    Oracle中SQL语句连接字符串的符号使用介绍

    这个运算符用于将两个或多个字符串合并成一个单一的字符串。在Oracle SQL中,字符串连接的操作相对简单且高效,使得处理和组合文本数据变得更加方便。 首先,我们来看一下`||`运算符的基本用法。在上述的示例代码中...

    oracle数据库的表数据导出为csv文件

    - 将每列的数据拼接成一行,并使用 `utl_file.put_line` 写入文件。 4. **异常处理**: - 捕获并处理可能出现的异常情况,如超出定义列范围时跳出循环。 #### 四、总结 通过上述分析,我们可以了解到利用Oracle ...

    Oracle SQL 语句学习

    字符串连接操作符“||”用于将多个字符串拼接成一个字符串,其用法是将“||”操作符置于两个字符串表达式之间。例如,可以将员工的姓氏和职位ID用“||”连接起来,形成一个新的字符串列。使用DISTINCT关键字可以去除...

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

    首先,`WMSYS.WM_CONCAT`是Oracle提供的一种字符串拼接函数,它可以将相同分组内的多行数据以特定的分隔符(默认为逗号)连接起来。例如,如果我们有一个产品表,其中包含多个类型的产品和对应的产品名称,我们可以...

    通过SQL语句实现行列转换的几种方法

    这个函数可以自动将多行数据合并为一个以逗号分隔的字符串。尽管这种方法非常直观且易于使用,但它存在一个问题:当查询结果集中有多行数据时,拼接的结果可能不会按照子查询中指定的顺序排列。这可能是Oracle的一个...

    oracle列合并的实现方法

    在Oracle数据库中,有时我们需要将同一表中多个列的值合并为一个字符串,这被称为列合并。Oracle提供了多种方法来实现这一功能,特别是在不同版本中,这些方法有所不同。以下是Oracle列合并的一些常用方法: 1. **...

    oracle学习集锦

    `LISTAGG`函数在分组查询中非常有用,它可以将一组字符串合并成一个单一的字符串,每个值之间用指定的分隔符分隔。 例如,如果我们有一个`employees`表,包含`first_name`和`last_name`字段,我们可以使用`CONCAT`...

    SQL中in参数化的用法

    解决方案之一是利用 SQL 内部字符串拼接+Exec 将自动添加的单引号给去掉: ```csharp comm.CommandText = "exec('select * from Users(nolock) where UserID in ('+@UserID+')')"; ``` 这样自动在 @ 两侧添加的单...

    sql高级进阶

    - 根据表中的行创建一个分隔列表:将行数据合并为一个逗号分隔的字符串。 - 提取第n个分隔的子串:使用数据库的字符串分割函数。 - 分解IP地址:将IP地址字符串拆分成单独的数字。 - 将分隔数据转换为多值IN列表...

    java-Oracle概要.docx

    * 表达字符(串)的拼接,可以将某几列或某列与字符串拼接在一起。 * 例:select colname1||colname2 from tabname 文字字符串: * select 语句后面可以包含的文字值:字符、表达式、数字。 * 字符常量(或字符串...

Global site tag (gtag.js) - Google Analytics