`

oracle行转列(连接字符串函数)

阅读更多

方法一:wmsys.wm_concat(column)      

介绍:其函数在Oracle 10g推出,在10g版本中,返回字符串类型,在11g版本中返回clob类型。括号里面的参数是列,而且可以是多个列的集合,也就是说在括号里面可以自 由地用‘||’合并字符串。如下面的例子: Select u_id, wmsys.wm_concat(goods || '(' || num || '斤)' ) goods_sum   from shopping   group by u_id

 

方法二:listagg (column,[,]) within group (order by ) [over (partition by  )]           

介绍:其函数在Oracle 11g 版本中推出,对分组后的数据按照一定的排序进行字符串连接。其中,“[,]”表示字符串连接的分隔符,如果选择使用[over (partition by )]则会使其变成分析函数;

 

方法三:sys_connect_by_path(column,<分隔符>)          

介绍:其函数在Oracle 9i 版本中推出,用来合并链路的字符串。注意的是其一定要和connect by子句合用!

第一个参数是形成树形式的字段,第二个参数是父级和其子级分隔显示用的分隔符。

以上内容转自:http://blog.sina.com.cn/s/blog_a637e97e01014pqo.html

 

使用注意:

SELECT c.gysid, listagg(c.wzlbid,',') within GROUP (ORDER BY c.wzlbid)   FROM  wzgl_gys_zrwmfw c GROUP BY gysid  

这几个方法都可以实现行转列,达到想要的效果。

但当数据量比较大时却报ORA-01489:字符串连接的结果过长。

此时个人的解决办法,只能转到程序代码中去处理。

分享到:
评论

相关推荐

    oracle行转列较精典的解决方案

    ### Oracle行转列的经典解决方案 在Oracle数据库管理与开发过程中,经常会遇到需要将数据表中的行数据转换为列数据的情况,这种操作被称为“行转列”或者“行列转换”。行列转换是数据分析、报表生成等场景中非常...

    oracle行转列聚合函数WMSYS.WM_CONCAT

    ### Oracle行转列聚合函数WMSYS.WM_CONCAT详解 #### 一、概述 在进行数据处理时,经常会遇到需要将多行数据合并为单行的情况,这通常被称为“行转列”。Oracle数据库提供了多种方法来实现这一需求,其中`WMSYS.WM_...

    oracle遍历数据库查找字符串

    INSTR函数则用来查找子串在目标字符串中的位置,返回值为0表示未找到。但手工编写这些查询对于大规模数据库可能非常繁琐且耗时。 这个名为"oracle遍历数据库查找字符串.jar"的工具可能实现了以下功能: 1. **连接...

    oracle常用字符函数

    - CONCAT用于连接两个或更多字符串,与"||"操作符功能相同。它支持字符和字符串类型的参数。 4. INITCAP(n) 函数: - 这个函数将字符串中每个单词的首字母转换为大写,其余部分转换为小写。单词的分隔依据是空格...

    列出字符串的全部排列组合

    然而,频繁地复制和连接字符串会导致效率低下,特别是在处理较大字符串或大量字符串操作时。 #### 4. 函数设计与代码组织 良好的函数设计应当遵循单一职责原则,即每个函数只负责一项具体的功能。在给定的代码中,...

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

    除了`||`运算符,Oracle还提供了一些其他的方法来连接字符串。例如,可以使用`CONCAT()`函数,它接受两个或更多个字符串作为参数,并返回它们的串联结果。例如: ```sql SELECT CONCAT(catstr(tcdm), ',') FROM T_...

    oracle日期函数字符函数聚合函数

    4. **CONCAT()** 或 **连接符(||)**: 连接两个字符串。例如,SELECT CONCAT('hello', 'world') FROM DUAL; 或 SELECT 'hello' || 'world' FROM DUAL; 都返回'helloworld'。 5. **LPAD(string, length, pad_string)*...

    oracle常用函数大全

    Oracle 常用函数大全 Oracle 中有许多常用函数,以下是其中一些: 字符函数 1. ASCII:返回与指定的字符对应的十进制数。...这些函数是 Oracle 中常用的字符串处理函数,可以用来进行字符串的操作和处理。

    解决Oracle没有WM_CONCAT函数.zip

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

    oracle中将列拼接字段函数

    与SQL中的`||`运算符不同的是,`WM_CONCAT`可以接受多个参数并将它们连接起来形成一个单一的字符串,特别适用于需要合并多个列值的情况。此函数通常用于返回一个由指定的列或表达式组成的列表,其中每个元素之间可以...

    oracle字符函数[归类].pdf

    Oracle字符函数是数据库管理系统Oracle中处理字符串数据的重要工具,它们主要用于对字符数据进行各种操作,如提取、转换、格式化等。以下是对标题和描述中提及的一些主要Oracle字符函数的详细说明: 1. ASCII(n)...

    oracle 10G函数大全

    本资料“Oracle 10G函数大全”显然是一份全面的参考指南,涵盖了Oracle 10G中的主要函数,包括数学函数、字符串函数、日期时间函数、系统信息函数等。 1. **数学函数**: - ABS:返回一个数的绝对值。 - CEIL:...

    oracle函数大全

    CONCAT 函数连接两个字符串。该函数的语法为 `CONCAT(string1, string2)`,其中 `string1` 和 `string2` 是要连接的两个字符串。例如,`SELECT CONCAT('010-','88888888') FROM DUAL;` 将返回字符串“010-88888888”...

    oracle最常用的函数或方法总结

    1. **字符串处理函数** - `CONCAT()`:用于连接两个或多个字符串。 - `SUBSTR()`:从字符串的指定位置截取指定长度的子串。 - `INSTR()`:查找字符串中指定字符或子串的位置。 - `UPPER()` 和 `LOWER()`:将字符...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    varchar2 1~4000字节 可变长度字符串,与CHAR类型相比,使用VARCHAR2可以节省磁盘空间,但查询效率没有char类型高 数值类型 Number(m,n) m(1~38) n(-84~127) 可以存储正数、负数、零、定点数和精度为38位的浮点数...

    oracle系统内置函数大全

    3. CONCAT函数:将两个字符串拼接起来,如果第一个字符串为NULL,则返回第二个字符串;如果第二个字符串为NULL,则返回第一个字符串。 4. INITCAP函数:将字符串中的每个单词的首字母转换为大写,其余字母转换为小写...

    oracle函数

    Oracle 函数可以分为多种类型,包括字符串函数、数字函数、日期函数等。本文将对 Oracle 函数进行详细的介绍,并提供相应的示例代码。 1. ASCII 函数 ASCII 函数返回指定字符对应的十进制数。语法为:ASCII(字符串...

    oracle sql内置函数大全

    在Oracle数据库系统中,内置函数分为多种类型,包括数值函数、字符串函数、日期时间函数、转换函数、数学函数、聚合函数等。下面将详细介绍这些函数类别及其常见用法。 1. **数值函数**: - `ABS()`:返回一个数的...

    Oracle多行记录合并

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

Global site tag (gtag.js) - Google Analytics