Oracle中实现一行拆分成多行(oracle一行拆多行)

Oracle数据库中实现一行拆分成多行,可以通过使用内建函数进行操作实现。比如可以使用Oracle内建的CONNECT BY LEVEL函数,根据每一行的分隔符号将一行的字符串拆分成多行。

假如有一行表示一个字符串,结构如下:

ID Name Music

1 john classical,pop

2 sarah jazz

那么将上面一行拆分成多行,可以使用CONNECT BY LEVEL函数,比如这样:

SELECT ID,

NAME,

REGEXP_SUBSTR(

MUSIC,

‘[^,]+’,

1,

LEVEL

) MUSIC

FROM

TABLE_NAME

CONNECT BY

LEVEL

AND PRIOR ID = ID

AND PRIOR DBMS_RANDOM.STRING(‘X’,20) IS NOT NULL;

结果如下:

ID Name Music

1 john classical

2 john pop

3 sarah jazz

在上述例子中,根据每行的分隔符号逗号“,”,通过CONNECT BY LEVEL函数将MUSIC字段的每一项拆分成多行,最终的结果以上面的样子呈现出来。

CONNECT BY LEVEL函数的使用方式和简单,只要把上面的例子作为模板,自定义相应的筛选条件和其他参数,就可以把一行拆分成多行了。有了这些函数,可以帮助开发者把复杂的数据合理的组织整理,从而更高效的分析和查询信息。


数据运维技术 » Oracle中实现一行拆分成多行(oracle一行拆多行)