如何在sql或plsql中删除空行 输入
select 'test1
test2
test3
test4' from dual;
预期输出:
test1
test2
test3
test4
TRANSLATE正在删除所有换行符
答案 0 :(得分:3)
首先,您可以使用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
答案 1 :(得分:2)
您可以在一个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.