`
53873039oycg
  • 浏览: 844106 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

oracle 11g listagg函数使用简记

 
阅读更多

      以前每次连接查询出符合条件的某列数据,如

     

     如果要使用这些数据,总是使用notepad++手动添加,。使之符合in的语法,因为这些数据可能是某个复杂的sql查询出来的,没有直接使用 in来查询 。
     

     今天偶然发现可以使用oracle 11g的listagg 函数(节省手动添加,的时间)

    

select listagg(v_id, ',') within group(order by null)

    结果为

    

     

    如果想用'括起来,使用

   

select listagg(v_id, ''',''') within group(order by null)
  from table_1
 where 1=1 

    结果为

  

    可以看出首尾字符不对,正确写法为:

  

select ''''||listagg(v_id, ''',''')  within group(order by null)||''''

    结果为

   

 

    随机排序也是支持的

  

select ''''||listagg(v_id, ''',''')  within group(order by dbms_random.value())||''''

   

     主要listagg要求oracle版本为11g以上,10是不支持的

     全文完

 

 

  • 大小: 22.3 KB
  • 大小: 23.7 KB
  • 大小: 18.2 KB
  • 大小: 25.9 KB
  • 大小: 25.2 KB
0
0
分享到:
评论

相关推荐

    【Oracle】LISTAGG函数的使用.pdf

    Oracle LISTAGG 函数的使用 Oracle LISTAGG 函数是 Oracle 11.2 中引入的一种新特性,主要功能类似于 wmsys.wm_concat 函数,即将数据分组后,把指定列的数据再通过指定符号合并。LISTAGG 函数有两个参数:要合并的...

    Oracle函数之LISTAGG

    Oracle数据库中的LISTAGG函数是一个非常实用的聚合函数,它允许你在一组数据中对特定列的值进行排序和拼接,生成一个字符串结果。这个函数特别适用于需要将多个行的数据合并到一行的情况,例如,当你想要在一个报告...

    Oracle10g自定义聚合函数(字符串拼接)

    * 自定义聚合函数 wmsys.wm_concat 替换办法 * 超大字符串拼接,单个字符串4000、分隔符100... * Oracle11g Release2版本引入了LISTAGG 函数,使得聚集连接字符串变得很容易。并且允许使用我们指定连接串中的字段顺序

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

    在Oracle中,若需要替换`WM_CONCAT`功能,可以使用`LISTAGG`函数(从11g版本开始提供),它更为强大且标准,支持分组内的字符串聚合。例如: ```sql SELECT LISTAGG(column_name, ', ') WITHIN GROUP (ORDER BY ...

    解决Oracle没有WM_CONCAT函数.zip

    1. 使用LISTAGG函数:从Oracle 11g开始,官方提供了LISTAGG函数,它可以按照指定的分隔符连接字符串。例如: ```sql SELECT LISTAGG(column, ', ') WITHIN GROUP (ORDER BY column) AS aggregated_column FROM ...

    Oracle迁postgre 不兼容字段、函数等更改

    10. LISTAGG 函数:Oracle 中的 LISTAGG 函数在 PostgreSQL 中对应的函数是 STRING_AGG。例如,在 Oracle 中的 LISTAGG(字段名, '/') 等同于 PostgreSQL 中的 STRING_AGG(字段名, '/')。 Oracle 迁移到 PostgreSQL ...

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

    LISTAGG 函数是 Oracle 11g 及更高版本中引入的,用于替代 WM_CONCAT 函数。 示例代码: ```sql SELECT sfc_no, LISTAGG(mark_operation_id, ',') WITHIN GROUP (ORDER BY mark_operation_id) FROM bp_marking ...

    Oracle 10g中的高级SQL函数

    在Oracle 10g数据库系统中,高级SQL函数是开发者不可或缺的工具,它们极大地扩展了标准SQL的功能,使得数据查询和处理更为灵活高效。本文将深入探讨这些高级SQL函数,帮助你更好地理解和运用它们。 一、窗口函数 ...

    oracle 10g 11g 12c 19c 21c 23c 重建wm-concat函数脚本

    oracle 10g 11g 12c 19c 21c 23c 重建wm_concat函数脚本 varchar类型clob类型报错不用listagg ORA-01790: 表达式必须具有与对应表达式相同的数据类型 ORA-00904: “WM_CONCAT“: invalid identifier 解决 owmaggrb....

    Oracle多行记录合并

    - **`LISTAGG()` 函数:** 这是Oracle 11g及以后版本引入的一个强大的聚合函数,专门用于将多行数据合并为单行字符串。它接受一个排序表达式和一个分隔符,返回所有行的合并结果。例如,假设我们有一个名为`orders`...

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

    1. **使用LISTAGG函数**:这是Oracle 11g R2及更高版本推荐的聚合函数,可以用来替代WM_CONCAT。例如,如果你原来的语句是`SELECT WM_CONCAT(column) FROM table`,你可以改为`SELECT LISTAGG(column, ', ') WITHIN ...

    wm_concat函数所需资源包

    1. **使用LISTAGG函数**:`LISTAGG`是Oracle 11g引入的官方聚合函数,它更安全,功能更强大,支持排序和分隔符。替换示例: ```sql SELECT department_id, LISTAGG(employee_id, ', ') WITHIN GROUP (ORDER BY ...

    Oracle 多行记录合并_连接_聚合字符串的几种方法_oracle_脚本之家1

    可以使用`CASE`语句配合`LISTAGG`函数(Oracle 11g及以上版本)来实现。例如: ```sql SELECT t.country, LISTAGG(t.city, ',') WITHIN GROUP (ORDER BY t.city) FROM test t GROUP BY t.country; ``` `LISTAGG`...

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

    `WM_CONCAT`是一个非标准的Oracle函数,它在Oracle 9i及以后的版本中被广泛使用,但在Oracle 11g R2版本中由于性能和并发性问题被废弃。尽管如此,对于一些旧系统或为了兼容性,开发者仍然会使用这个函数。 `WM_...

    wm_concat函数DDL.zip

    但在Oracle 11g及以后版本,你需要使用其他内置函数或者自定义函数来实现相同的功能。 自定义`wm_concat`函数的一种常见方法是创建一个聚合函数,通常使用PL/SQL实现。以下是一个简单的例子: ```sql CREATE OR ...

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

    在这个例子中,我们使用了`LISTAGG`函数,它是Oracle 11g引入的一个新功能,可以将分组后的数据连接成一个字符串。`WITHIN GROUP (ORDER BY p_column)`确保了结果的排序。这样,我们就可以像使用`WM_CONCAT`一样使用...

    异种数据库函数和标准SQL语法比较Oracle与SqlServer.rar

    - Oracle的`RANK`, `DENSE_RANK`和`ROW_NUMBER`在SQL Server中也存在,但Oracle的`LISTAGG`函数用于字符串合并,SQL Server需要使用`FOR XML PATH`或`STRING_AGG`(SQL Server 2017及以上版本)。 5. **事务控制**...

    oracle材料

    1. **Listagg函数**:`listagg`是Oracle 11g引入的一个聚合函数,用于将多行数据合并为单行。它接受两个参数,一个是需要聚合的列,另一个是分隔符。例如,如果有个`orders`表包含`customer_id`和`product`列,你...

    oracle wm_concat 列转行 逗号分隔

    然而,由于WM_CONCAT的局限性,Oracle建议使用其他替代方法,如使用LISTAGG函数(自Oracle 11g R2起提供)或者自定义聚合函数来实现类似的功能。LISTAGG函数提供了更好的控制,比如可以指定分隔符,并且是标准的SQL...

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

    然而,从Oracle 11g Release 2开始,这个函数被弃用了,并在后续版本中完全移除,导致了“标识符无效”的问题。以下是对这个问题的详细解释和解决方法。 **WM_CONCAT函数的背景:** 在Oracle 10g及更早版本中,...

Global site tag (gtag.js) - Google Analytics