方法一: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行转列聚合函数WMSYS.WM_CONCAT详解 #### 一、概述 在进行数据处理时,经常会遇到需要将多行数据合并为单行的情况,这通常被称为“行转列”。Oracle数据库提供了多种方法来实现这一需求,其中`WMSYS.WM_...
INSTR函数则用来查找子串在目标字符串中的位置,返回值为0表示未找到。但手工编写这些查询对于大规模数据库可能非常繁琐且耗时。 这个名为"oracle遍历数据库查找字符串.jar"的工具可能实现了以下功能: 1. **连接...
- CONCAT用于连接两个或更多字符串,与"||"操作符功能相同。它支持字符和字符串类型的参数。 4. INITCAP(n) 函数: - 这个函数将字符串中每个单词的首字母转换为大写,其余部分转换为小写。单词的分隔依据是空格...
然而,频繁地复制和连接字符串会导致效率低下,特别是在处理较大字符串或大量字符串操作时。 #### 4. 函数设计与代码组织 良好的函数设计应当遵循单一职责原则,即每个函数只负责一项具体的功能。在给定的代码中,...
除了`||`运算符,Oracle还提供了一些其他的方法来连接字符串。例如,可以使用`CONCAT()`函数,它接受两个或更多个字符串作为参数,并返回它们的串联结果。例如: ```sql SELECT CONCAT(catstr(tcdm), ',') FROM T_...
4. **CONCAT()** 或 **连接符(||)**: 连接两个字符串。例如,SELECT CONCAT('hello', 'world') FROM DUAL; 或 SELECT 'hello' || 'world' FROM DUAL; 都返回'helloworld'。 5. **LPAD(string, length, pad_string)*...
Oracle 常用函数大全 Oracle 中有许多常用函数,以下是其中一些: 字符函数 1. ASCII:返回与指定的字符对应的十进制数。...这些函数是 Oracle 中常用的字符串处理函数,可以用来进行字符串的操作和处理。
1. 使用LISTAGG函数:从Oracle 11g开始,官方提供了LISTAGG函数,它可以按照指定的分隔符连接字符串。例如: ```sql SELECT LISTAGG(column, ', ') WITHIN GROUP (ORDER BY column) AS aggregated_column FROM ...
与SQL中的`||`运算符不同的是,`WM_CONCAT`可以接受多个参数并将它们连接起来形成一个单一的字符串,特别适用于需要合并多个列值的情况。此函数通常用于返回一个由指定的列或表达式组成的列表,其中每个元素之间可以...
Oracle字符函数是数据库管理系统Oracle中处理字符串数据的重要工具,它们主要用于对字符数据进行各种操作,如提取、转换、格式化等。以下是对标题和描述中提及的一些主要Oracle字符函数的详细说明: 1. ASCII(n)...
本资料“Oracle 10G函数大全”显然是一份全面的参考指南,涵盖了Oracle 10G中的主要函数,包括数学函数、字符串函数、日期时间函数、系统信息函数等。 1. **数学函数**: - ABS:返回一个数的绝对值。 - CEIL:...
CONCAT 函数连接两个字符串。该函数的语法为 `CONCAT(string1, string2)`,其中 `string1` 和 `string2` 是要连接的两个字符串。例如,`SELECT CONCAT('010-','88888888') FROM DUAL;` 将返回字符串“010-88888888”...
1. **字符串处理函数** - `CONCAT()`:用于连接两个或多个字符串。 - `SUBSTR()`:从字符串的指定位置截取指定长度的子串。 - `INSTR()`:查找字符串中指定字符或子串的位置。 - `UPPER()` 和 `LOWER()`:将字符...
varchar2 1~4000字节 可变长度字符串,与CHAR类型相比,使用VARCHAR2可以节省磁盘空间,但查询效率没有char类型高 数值类型 Number(m,n) m(1~38) n(-84~127) 可以存储正数、负数、零、定点数和精度为38位的浮点数...
3. CONCAT函数:将两个字符串拼接起来,如果第一个字符串为NULL,则返回第二个字符串;如果第二个字符串为NULL,则返回第一个字符串。 4. INITCAP函数:将字符串中的每个单词的首字母转换为大写,其余字母转换为小写...
Oracle 函数可以分为多种类型,包括字符串函数、数字函数、日期函数等。本文将对 Oracle 函数进行详细的介绍,并提供相应的示例代码。 1. ASCII 函数 ASCII 函数返回指定字符对应的十进制数。语法为:ASCII(字符串...
在Oracle数据库系统中,内置函数分为多种类型,包括数值函数、字符串函数、日期时间函数、转换函数、数学函数、聚合函数等。下面将详细介绍这些函数类别及其常见用法。 1. **数值函数**: - `ABS()`:返回一个数的...
- **`LISTAGG()` 函数:** 这是Oracle 11g及以后版本引入的一个强大的聚合函数,专门用于将多行数据合并为单行字符串。它接受一个排序表达式和一个分隔符,返回所有行的合并结果。例如,假设我们有一个名为`orders`...