DB2 删除空行
DB2 remove empty lines
我有这样的字符串
#
word_1
word_2
#
word_3
#
#
其中 # 代表空行。
我想删除那些空行,以获得
word_1
word_2
word_3
我尝试用 '' 替换 CHR(10) 和 CHR(13) 但后来我得到了
word_1word_2word_3
我知道我可以使用 LTRIM 删除第一个空行,但如何删除所有空行?
您必须删除所有换行符后跟换行符,以及字符串开头和结尾的单个换行符。所有这些替换都可以用一个表达式完成。
从 v11.1 开始
select regexp_replace (s, '\r\n(?=\r\n)|^\r\n|\r\n$', '')
from (values x'0d0a' || 'abc' || x'0d0a0d0a'|| 'def' || x'0d0a') t (s)
请注意,您可能将换行符编码为 x'0a'
而不是 x'0d0a'
。从上面的表达式中删除本例中的所有 \r
个字符。
dbfiddle link.
从 v9.7 开始
select xmlcast (xmlquery ('replace (replace ($d, "^\r\n|\r\n$", ""), "(\r\n){2,}", "")' passing s as "d") as varchar (100))
from (values x'0d0a' || 'abc' || x'0d0a0d0a'|| 'def' || x'0d0a') t (s)
dbfiddle link.
我有这样的字符串
#
word_1
word_2
#
word_3
#
#
其中 # 代表空行。 我想删除那些空行,以获得
word_1
word_2
word_3
我尝试用 '' 替换 CHR(10) 和 CHR(13) 但后来我得到了
word_1word_2word_3
我知道我可以使用 LTRIM 删除第一个空行,但如何删除所有空行?
您必须删除所有换行符后跟换行符,以及字符串开头和结尾的单个换行符。所有这些替换都可以用一个表达式完成。
从 v11.1 开始
select regexp_replace (s, '\r\n(?=\r\n)|^\r\n|\r\n$', '')
from (values x'0d0a' || 'abc' || x'0d0a0d0a'|| 'def' || x'0d0a') t (s)
请注意,您可能将换行符编码为 x'0a'
而不是 x'0d0a'
。从上面的表达式中删除本例中的所有 \r
个字符。
dbfiddle link.
从 v9.7 开始
select xmlcast (xmlquery ('replace (replace ($d, "^\r\n|\r\n$", ""), "(\r\n){2,}", "")' passing s as "d") as varchar (100))
from (values x'0d0a' || 'abc' || x'0d0a0d0a'|| 'def' || x'0d0a') t (s)
dbfiddle link.