如果对UDF开放,则以下操作将删除所有控制字符并重复空格。
重复空间的去除启发(OK被盗)从戈登回答几个月前。
例
Declare @S varchar(max) = 'Maximize your productivity for building engaging,
beautiful web mapping applications'
Select [dbo].[svf-Str-Strip-Control](@S)
返回
Maximize your productivity for building engaging, beautiful web mapping applications
的UDF如果有意
CREATE FUNCTION [dbo].[svf-Str-Strip-Control](@S varchar(max))
Returns varchar(max)
Begin
Select @S=Replace(@S,char(n),' ')
From (values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12),(13),(14),(15),(16),(17),(18),(19),(20),(21),(22),(23),(24),(25),(26),(27),(28),(29),(30),(31)) N(n)
Return LTrim(RTrim(Replace(Replace(Replace(@S,' ','><'),'<>',''),'><',' ')))
End
--Select [dbo].[svf-Str-Strip-Control]('Michael '+char(13)+char(10)+'LastName') --Returns: Michael LastName
这是可重复使用的用户定义的函数的良好候选者。 –
查看更新的答案。我删除了32.没有必要 –