`

oracle字符串转成多列查询

 
阅读更多
1,将如下结果
id privilege_id
1  123,234,43532
2  2342,4353,24324
3  3453,463,663
转换成
id privilege_ids
1  123
1  234
1  43532
2  2342
2  4353
2  24324
3  3453
3  463
3  663

2,sql如下
select a.id,a.title,substr(privilege_id,instr(a.privilege_id,',',1,b.num-1) + 1,(instr(a.privilege_id,',',1,b.num)-instr(a.privilege_id,',',1,b.num-1))-1) privilege_ids
  from (select id,title,','||ltrim(rtrim(privilege_id,','),',')||',' privilege_id from notice_content_t) a,
       (select rownum+1 num from dual connect by rownum <=(select max(length(privilege_id)) num from  notice_content_t)) b
where length(privilege_id)-length(replace(privilege_id,',','')) >= b.num



扩展可参考:http://www.itpub.net/thread-1017026-1-1.html
分享到:
评论

相关推荐

    oracle中操作字符串

    ### Oracle中操作字符串 在Oracle数据库中,对字符串进行处理是一项常见的需求,特别是在处理带有特定分隔符(如逗号`,`、冒号`:`等)的字符串时。本文将详细介绍如何利用Oracle内置函数来实现从含有逗号和冒号的...

    oracle多行转为字符串总结

    介绍了将多行转为字符串的三种方案,并比较了三种方案的执行效率. 1.sys_connect_by_path + start with ... connect by ... prior + 分析函数 2.自定义Function/SP 3.使用 Oracle 10g 内置函数 wmsys.wm_concat

    oracle遍历数据库查找字符串

    标题"Oracle遍历数据库查找字符串"暗示了一个实用的解决方案,它允许用户快速搜索Oracle数据库中的特定文本字符串,无需手动编写复杂的SQL查询。这通常在数据审计、故障排查或日志分析等场景中非常有用。 描述中...

    Oracle行转列

    多列转换成字符串是指将多个列数据合并成一个字符串数据。例如,有一个表t_col_row,其中包含多个列c1、c2、c3,需要将这些列数据合并成一个字符串数据。 可以使用LISTAGG函数来实现多列转换成字符串,例如: ```...

    字符串相似度算法 字符串相似度算法 字符串相似度算法

    字符串相似度算法 字符串相似度算法是一种衡量两个字符串之间相似度的方法,广泛应用于自然语言处理、数据挖掘、机器学习等领域。在本文中,我们将讨论一种常用的字符串相似度算法:Levenshtein Distance。 什么是...

    oracle将以逗号分隔字符串转多行

    在Oracle数据库中,将逗号分隔的字符串转换为多行是常见的数据处理需求,尤其在需要对每个分隔项进行单独操作时。这个过程通常涉及到字符串处理函数,如`REGEXP_SUBSTR`和`REPLACE`,以及层次查询结构`CONNECT BY`。...

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

    总之,生成字符串的全部排列组合涉及到字符串操作、动态内存管理和递归算法等多个方面的知识。合理的设计和高效的算法实现是解决此类问题的关键。在实际开发中,我们应当注重代码的清晰度、效率和可维护性,以满足...

    SQL 语句 将一个表中用特殊字符分割的字段转换成多行数据.docx

    为了解决这个问题,我们可以创建一个字符串分割函数,通过直接查询就能将分割后的结果转换成多行数据。 1. 创建字符串分割函数 首先,我们需要创建一个字符串分割函数,名为 `StringSplit`。这个函数将接受两个...

    oracle行转列oracle行转列

    行转列,即Pivot操作,是指将原始数据集中的一列或多列中的值转换为新的列名,并将这些列的值分布到相应的行中。这与传统的表结构有所不同,在传统表结构中,每一列代表一种属性,而每一行代表一个实例。但在某些...

    oracle行转列

    首先,"行转列"的基本思想是将数据库表中的一列数据转换为多列显示,使得数据在展示时更加清晰、直观。Oracle提供了多种方法来实现这一目标,包括使用Pivot和Unpivot操作,以及自定义的SQL查询技巧。 1. PIVOT操作...

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

    Oracle 中实现行转列功能,并使用逗号进行隔开拼接,成为一条数据是指将多行数据合并成一行数据,并用逗号分隔每个字段的值。这种功能在实际应用中非常有用,例如在报表生成、数据分析和数据整合等场景中。 在 ...

    oracle常用字符函数

    - `TO_SINGLE_BYTE(str)`: 多字节字符串转单字节。 4. **集合函数** - `AVG(column)`: 计算指定列`column`的平均值。 - `COUNT(column)`: 统计`column`中非NULL值的数量。 - `MAX(column)`: 返回`column`中的...

    oracle sql 某列的值按照逗号分割显示成多行.sql

    oracle 某列存儲的值是有逗號的字符串,希望通過逗號分隔開來顯示多行。sql,有預期結果,有項目實戰。

    Oracle多行记录合并

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

    ORACLE分区

    Oracle分区是一种将大表或索引分割成较小部分的技术,旨在提高查询性能、减少管理开销并简化数据维护操作。通过合理地将数据分成多个物理块,可以显著提升查询效率,特别是在处理大量历史数据或执行复杂的分析任务时...

    oracle 行转列

    - 在循环中构建动态SQL字符串,使用`DECODE`函数判断科目并累加成绩。 - 最后执行动态SQL创建一个新表`tt`,其中包含了转换后的数据。 #### 四、扩展知识点 - **`DECODE`函数**:`DECODE`函数用于条件判断,类似于...

    Oracle 行列转换 总结

    这种转换有六种情况:列转行、行转列、多列转换成字符串、多行转换成字符串、字符串转换成多列、字符串转换成多行。 1. 列转行 列转行是指将多个列转换成一个行。例如, CREATE TABLE t_col_row(ID INT, c1 ...

    oracle_lhr_行列互换总结

    根据提供的文件信息,我们将详细讨论Oracle中实现行列互换的六种情况,分别为:列转行、行转列、多列转换成字符串、多行转换成字符串、字符串转换成多列、字符串转换成多行。 1. 列转行 列转行是指将表中的列转换为...

    一个oracle根据特定字符截取数据

    这篇博客“一个oracle根据特定字符截取数据”分享了一个实用的方法,适用于那些需要从字符串字段中提取部分信息的情况。通过SQL查询,我们可以高效地完成这项任务。 在Oracle SQL中,有多个内置函数可以帮助我们...

Global site tag (gtag.js) - Google Analytics