将数据拆分为oracle中的新行但在同一行中

Split data into a new line in oracle but in the same row

我有这样的数据

ColumnA ColumnB CloumnC

1 国王狗,猫

我想在一行中显示如下所示的数据"cat"应该在同一行中换行显示

ColumnA ColumnB CloumnC

1 只国王狗 猫

您可以将拆分字符“,”替换为换行符。

WITH sample_data
AS ( select null      as ColumnA
     ,      'King'    as ColumnB
     ,      'Dog,Cat' as ColumnC
     FROM   dual
   )
SELECT ColumnA
,      ColumnB
,      REPLACE(ColumnC,',',CHR(10))
FROM   sample_data

一个换行取决于操作系统。在基于Unix的OS中是CHR(10),在Windows中是CHR(13) 之后是 CHR(10)

在Windows OS:

SELECT columna
,      columnb
,      REPLACE(columnc,',',CHR(10)||CHR(13))
FROM   table;

基于 Unix OS:

SELECT columna
,      columnb
,      REPLACE(columnc,',',CHR(10))
FROM   table;