在一个单元格中创建两行

时间:2013-01-29 10:43:23

标签: sql oracle

我有一个sql代码正在检索一行有多行,有没有办法让它将这两行合并为一行。

select revertrsn  from LN08PENm where aano in(754,870,1136,1138,1139,1140)

我正在检索的行中的数据是这样的:

  

根据Mohammad Sulaiman的批准

     

通过邮件日期07/04/2009

我希望它像这样一行:

  

根据Mohammad Sulaiman的邮件日期07/04/2009批准

2 个答案:

答案 0 :(得分:2)

您可以使用空白字符\n替换换行符char(10)。 例如:

select replace(revertrsn,chr(10),' ') as only_one_line
  from LN08PENm 
 where aano in(754,870,1136,1138,1139,1140)

请注意,throw-a-line指令因操作系统而异。在Windows上,您需要检查回车后跟换行符:chr(13)||chr(10)。令人困惑的是,我们需要记录的操作系统是加载数据的操作系统,而不是我们用于输出的操作系统。

答案 1 :(得分:1)

清理这种混乱的好方法只是取代非打印控制代码。

update tab
set    col =  regexp_replace(col,'[:cntrl:]','')
where  col != regexp_replace(col,'[:cntrl:]','')