oracle:只删除空行

Posted

技术标签:

【中文标题】oracle:只删除空行【英文标题】:oracle: remove only blank lines 【发布时间】:2019-05-15 20:51:54 【问题描述】:

如何删除sql或plsql中的空行 输入

select 'test1
    test2
  test3



test4' from dual;

预期输出:

test1
test2
test3
test4

TRANSLATE 正在删除所有换行符

【问题讨论】:

【参考方案1】:

您可以在一个 regexp_replace 中完成。指定多行模式的参数,只需将行首的零个或多个空白字符替换为空。这样,只有行首的空格(如果有的话)会被删除,这样嵌入的空格(可能在单词之间)就会被保留,如果这是你想要的。

with data(txt) as (
select 'test1
    test2
  test3



test4' from dual
)
select regexp_replace(txt, '^\s*', null, 1, 0, 'm') txt 
from data;

输出:

TXT                    
-----------------------
test1
test2
test3
test4                 


1 row selected.

【讨论】:

似乎比我的 wood 解决方案优雅得多;)【参考方案2】:

首先你使用replace简单地去掉空格。

在第二步中,您必须删除重复的换行符 - 仅将它们替换为一个换行符 - 用户regexp_replace为此目的。

请注意,您需要根据您的操作系统调整 新行。 如果有标签或其他白色的东西,类似的也适用于空白。

with dta as (
select 'test1
    test2
  test3



test4' as txt from dual)
select regexp_replace(replace(txt,' ',null),chr(10)||'+',chr(10)) txt from dta;

TXT                   
-----------------------
test1                   
test2                   
test3                   
test4

请注意,您仍然只能得到一行结果 - 如果您想要四行结果,您必须另外拆分新行上的字符串,参见例如here

【讨论】:

以上是关于oracle:只删除空行的主要内容,如果未能解决你的问题,请参考以下文章

Notepad ++中的正则表达式删除空行

教你使用notepad++ 删除空行的方法技巧

python删除txt档案的首行的空行

ORACLE sql 语言,啥语句可以让输出的结果产生一个空行隔开数据。代码如下,就是要求用一个空行隔开。

如何在python的帮助下删除文件中的所有空行?

如何使用 sed 命令正则表达式在文件中查找第一个空行并删除