Sql server 如何仅修剪右侧的所有空间和新线
也许这很容易,但由于某种原因,我无法做到这一点 问题是,当我用Sql server 如何仅修剪右侧的所有空间和新线,sql-server,tsql,Sql Server,Tsql,也许这很容易,但由于某种原因,我无法做到这一点 问题是,当我用CHAR(13)和CHAR(10)和RTRIM删除所有空格\新行时,它会从两个方向删除所有空格和新行 DECLARE @txt NVARCHAR(1000); SET @txt = ' Some Text '; 预期结果: @txt = ' Some Text'; 对于此类任务,最好实现SQL CLR函数,在SQL Server中引入正则表达式功能。例如: DECLARE @txt NVARCHAR(1000); SET @
CHAR(13)
和CHAR(10)
和RTRIM
删除所有空格\新行时,它会从两个方向删除所有空格和新行
DECLARE @txt NVARCHAR(1000);
SET @txt = '
Some Text
';
预期结果:
@txt = '
Some Text';
对于此类任务,最好实现SQL CLR函数,在SQL Server中引入正则表达式功能。例如:
DECLARE @txt NVARCHAR(1000);
SET @txt = '
Some Text
';
SELECT [dbo].[fn_Utils_RegexReplace] (@txt, '[\s\n]+$', '');
您可以找到有关如何创建此类函数的更多信息
对于较新版本的SQL Server(从SQL Server 2016开始),您可以选择使用R
进行评论中提到的操作
无论如何,建议我阅读有关可以创建的SQL CLR对象(函数、触发器、类型、聚合)的内容,因为您可以使用.net解决各种任务。可能的重复并不容易。SQL不是一种字符串操作语言。理想情况下,应该在将数据插入数据库之前执行数据清理。在SQL Server 2016之前,您必须使用非常复杂的查询或外部程序(如用C#编写的程序)来清理这样的文本。在SQL Server 2016中,您也可以使用R脚本。SQl Server 2017还增加了Python支持。您是否尝试过用谷歌搜索这个问题????网上有大量的参考资料,其中有大量非常复杂和/或缓慢的解决方案。OP要求替换字符串末尾的换行符。使用正则表达式很容易。使用SQL并不容易