【ORACLE】数据拼接那些事-多行或多列按指定分隔符拼接
在Oracle中,可以使用LISTAGG
函数将多行数据按指定的分隔符拼接成单行。但是,需要注意的是,LISTAGG
函数在12c版本中才被引入。在12c之前的版本,可以使用WM_CONCAT
函数或者自定义聚合函数来实现类似的功能。
以下是使用LISTAGG
函数的示例:
SELECT LISTAGG(column_name, ',') WITHIN GROUP (ORDER BY column_name) AS concatenated_string
FROM table_name;
这将把table_name
表中的column_name
列的所有值按照升序拼接成一个由逗号分隔的字符串。
如果需要按行进行拼接,可以使用WM_CONCAT
函数,如下所示:
SELECT WM_CONCAT(column_name) AS concatenated_string
FROM table_name;
这将会把table_name
表中的column_name
列的所有值拼接成一个由默认分隔符连接的字符串。
如果需要进行列的拼接,可以使用||
运算符,如下所示:
SELECT column1 || column2 || column3 AS concatenated_string
FROM table_name;
这将会把table_name
表中的column1
, column2
, column3
列的所有值拼接成一个新的字符串。
请根据你的Oracle版本和具体需求选择合适的方法。
评论已关闭