如何从文本字段中删除完整的空白行?

时间:2015-05-20 07:38:51

标签: sql-server replace formatting

我有一个从邮件消息导入到表的数据,有时看起来像这样:

Line 1

Line 2



Line 3

我想要的是它看起来像这样:

Line 1
Line 2
Line 3

有没有选择如何实现这一目标?我只需要替换完全空行就可以在报表生成器中以更方便的方式显示它。

1 个答案:

答案 0 :(得分:3)

假设你的文本字段是varchar,因为没有人再使用文本了。

在大多数情况下,行更改为ascii 13 + ascii 10.通过替换所有ascii 10后跟ascii 13,您将删除空行(除非它们包含空格)。

DECLARE @x varchar(max) =
'Line 1

Line 2


Line 3'

SELECT replace(@x, char(10) + char(13), '')

结果:

Line 1
Line 2
Line 3

证明这也适用于文字:

create table x(x text)
insert x values(
'LINE1

LINE2


LINE3
')

SELECT replace(cast(x as varchar(max)), char(10) + char(13), '')
FROM x

结果:

LINE1
LINE2
LINE3