如何修剪右侧的所有空间和新线条

时间:2017-10-24 14:19:45

标签: sql-server tsql

可能这很容易,但出于某种原因,我无法做到。

问题是当我删除CHAR(13)CHAR(10)以及RTRIM的所有空格\新行时,它会删除所有空格和两个方向的新行。

DECLARE @txt NVARCHAR(1000);
SET @txt = '

Some Text

';

预期结果:

@txt = '

Some Text';

1 个答案:

答案 0 :(得分:0)

对于此类任务,最好实现在SQL Server中引入正则表达式功能的SQL CLR函数。例如:

DECLARE @txt NVARCHAR(1000);
SET @txt = '

Some Text


';

SELECT [dbo].[fn_Utils_RegexReplace] (@txt, '[\s\n]+$', '');

您可以找到有关如何创建此类函数here的更多信息。

对于较新版本的SQL Server(从SQL Server 2016开始),您可以选择使用R进行此类操作,如评论中所述。

无论如何,我建议您阅读可以创建的SQL CLR对象(函数,触发器,类型,聚合),因为您可以使用.net解决各种任务。