如果對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.沒有必要 –