`

oracle整理之 wm_concat(column)函数的使用

阅读更多

Oracle数据中,使用wm_concat(column)函数,可以进行所选字段数据值的合并;

一、对单个字段值合并

例如:

 sql:select t.id,t.name,t.price,t.count,t.uid from goods t;

各字段分别是:id,名称,价格,数量,购买者Id

查询购买者所购买的各种商品

sql:select t.uid,wm_concat(t.name) from goods t group by t.uid;

 

二、对组合字段值合并

例如:

  sql:select t.id,t.name,t.price,t.count,t.uid from goods t;

查询购买者所购买的各种商品及其数量

sql:select t.uid,wm_concat(t.name||‘(’||t.count||')') goods_num from goods group by t.uid;

 

三、自定义合并函数

先定义函数,然后再调用函数就OK了,注意参数

例子:查询某位购买者所购买的各种商品

create or replace function CONCAT_NAME(UID VARCHAR2)
 return  VARCHAR2 IS COMMS VARCHAR2(2000) DEFAULT '';
begin
  FOR COMM IN(select t.name from goods t  where t.uid =UID) LOOP
    COMMS := COMMS  || COMM.name || ';';
  end LOOP; 
  return COMMS;
end;

 

分享到:
评论

相关推荐

    解决Oracle没有WM_CONCAT函数.zip

    标题“解决Oracle没有WM_CONCAT函数”暗示了这个问题的背景:用户在尝试使用WM_CONCAT时遇到了问题,或者想要在不支持此函数的数据库环境中实现类似的功能。这可能是因为他们正在处理需要聚合多个字符串字段的查询,...

    ORA-00904: "WM_CONCAT": 标识符无效

    在这个场景下,错误信息提到的是"WM_CONCAT"函数,这表明在Oracle 19c数据库环境中,用户尝试使用WM_CONCAT函数,但系统无法识别该函数,提示其为无效的标识符。WM_CONCAT是Oracle 10g及更早版本中用于字符串合并的...

    Oracle重建WMSYS用户及WMSYS.WM_CONCAT函数(更低分)

    这个错误通常意味着试图访问或使用`WMSYS.WM_CONCAT`函数时遇到了问题,这是一个在早期Oracle版本中提供的聚合函数,用于字符串连接,但在较新的版本中被弃用并替换为其他更安全和高效的解决方案。 `WMSYS`是Oracle...

    ORA-00904 WMSYS.WM_CONCAT标识符无效解决方案

    2. **自定义函数**:如果不能使用LISTAGG(例如,在Oracle 10g或更低版本中),可以创建自己的自定义聚合函数来替代WM_CONCAT。 3. **调整查询**:在某些情况下,可能可以通过重新构造查询,使用嵌套的SELECT语句或...

    oracle行转列聚合函数WMSYS.WM_CONCAT

    3. **兼容性**:需要注意的是,`WMSYS.WM_CONCAT`函数并非Oracle标准函数,它是在Oracle 10g之后引入的,因此在使用时需确保Oracle版本支持。 #### 五、总结 通过本文的学习,我们了解了Oracle中的`WMSYS.WM_...

    自写函数用于替换wm_concat函数.zip

    在Oracle数据库中,`WM_CONCAT`函数是一个非常实用的工具,它允许我们将多个行的数据合并成一个字符串,但是这个函数在Oracle 11g R2版本之后被标记为弃用,不再推荐使用。为了应对这个问题,开发者们经常需要自定义...

    wmsys.wm_concat详细示例.txt

    在Oracle数据库中,`wmsys.wm_concat`是一个非常实用且强大的函数,主要用于将多个字符串连接成一个字符串。此函数常用于数据聚合场景,尤其是当需要在一个查询中汇总特定分组下的所有值时。根据给定文件的信息,...

    BLOG_Oracle_wm_concat包的订制.pdf

    1. **利用系统包创建WM_CONCAT函数**:Oracle提供了一套脚本来创建一个类似`WM_CONCAT`的函数,这通常涉及到在`WMSYS`模式下执行一系列的PL/SQL语句,以复现`WM_CONCAT`的功能。这个过程需要对Oracle的内部工作原理...

    oracle合并列的函数wm_concat的使用详解

    在Oracle数据库中,有时我们需要将同一列中的多个值合并成一个字符串,这时就可以使用`WM_CONCAT`函数。`WM_CONCAT`是一个非标准的Oracle函数,它在Oracle 9i及以后的版本中被广泛使用,但在Oracle 11g R2版本中由于...

    oracle wm_concat 列转行 逗号分隔

    然而,需要注意的是,WM_CONCAT并不是Oracle官方提供的标准函数,它在Oracle 11g R2版本之后就被标记为不推荐使用,因为它的性能和可扩展性有限。尽管如此,在早期版本中,WM_CONCAT仍然被广泛使用。 WM_CONCAT函数...

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

    2. **使用 WM_CONCAT 函数**:接着,我们将使用`WM_CONCAT`函数来连接查询结果中的列名,并在每个列名之间插入逗号作为分隔符。 3. **GROUP BY 子句**:最后,为了确保所有列名都正确地被聚合到一起,我们需要使用`...

    owmctab.plb、owmaggrs.plb、owmaggrb.plb

    1. **使用其他内置函数**:Oracle推荐使用"LISTAGG"函数来代替"WM_CONCAT","LISTAGG"可以按分组聚合数据并返回一个字符串。例如: ```sql SELECT LISTAGG(column_name, ', ') WITHIN GROUP (ORDER BY column_name...

    管理信息化ORACLEOracle100个常用函数.pdf

    SELECT REPLACE(WM_CONCAT(column), ',', '+') FROM table; ``` 5. CAST:类型转换函数,允许将数据从一种Oracle数据类型转换为另一种。 ```sql SELECT CAST(a AS INT) FROM t1; SELECT CAST(a AS NUMBER(8, 4...

    Oracle关键字用法整合

    **功能说明**:`WM_CONCAT`函数与`LISTAGG`类似,用于将多个字符串值连接成一个单独的字符串。 **语法结构**: ```sql SELECT id, WM_CONCAT(name) name FROM test_table GROUP BY id; ``` **示例**: ```sql ...

    oracle列合并的实现方法

    在Oracle 10G及更早版本中,我们可以使用`WMSYS.WM_CONCAT`函数来合并列的值。这个函数会将字段的值用逗号(,)分隔开来。例如,如果我们有一个名为`tab_name`的表,并且想要合并`name`列,我们可以使用以下查询: ...

    oracle 用表结构创建 type

    SELECT REPLACE(wmsys.wm_concat(col), ',', ',' || CHR(10)) INTO cols_s FROM ( SELECT column_name || '' || DATA_TYPE || '(' || DATA_LENGTH || ')' AS col FROM user_TAB_COLUMNS WHERE table_name = 'xxx...

    Oracle100个常用函数.docx

    SQL> SELECT REPLACE(WM_CONCAT(column), ',', '+') FROM table_name; ``` #### 5. CAST **功能**: 类型转换,将一种数据类型转换为另一种数据类型。 **语法**: CAST(表达式 AS 目标类型) **示例**: 将列`a`中的...

    SQL最佳实践

    在Oracle中,可以使用多种方法来实现这一目标,包括`WMSYS.WM_CONCAT`、`LISTAGG`、`COLLECT`等。 - **WMSYS.WM_CONCAT**:将多个字符串合并成一个。 - **LISTAGG**:将多个字符串值组合成一个字符串,可以指定分隔...

Global site tag (gtag.js) - Google Analytics