我想替换(或删除)TSQL字符串中的换行符。 有任何想法吗?
明显的
REPLACE(@string, CHAR(13), '')
只是不会做...
#1楼
要执行大多数人想要的操作,请创建一个不是实际换行符的占位符。 然后,您可以实际结合以下方法:
REPLACE(REPLACE(REPLACE(MyField, CHAR(13) + CHAR(10), 'something else'), CHAR(13), 'something else'), CHAR(10), 'something else')
这样,您只需更换一次。 的方法:
REPLACE(REPLACE(MyField, CHAR(13), ''), CHAR(10), '')
如果您只想摆脱CRLF字符,但是如果您想要一个占位符(例如,
或其他东西,那么第一种方法会更准确。
#2楼
我可能晚了一年,但是我每天都要处理查询和MS-SQL,并且我对内置函数LTRIM()和RTRIM()感到厌倦(并且总是必须一起调用它们),并且由于没有捕获到最后有换行符的“脏”数据,因此我认为是时候实施一个更好的TRIM功能了。 欢迎同仁反馈!
免责声明 :实际上,这删除了 (替换为单个空格)扩展形式的空格(制表符,换行,回车等),因此从我的原始答案中将其重命名为“ CleanAndTrim”。 这里的想法是,你的字符串并不需要它里面这种额外的特殊空白字符,所以如果在头/尾不发生他们,他们应该用简单的空间所取代。 如果您有意将这样的字符存储在字符串中(例如,要在其上运行的数据列),请不要这样做! 改进此功能或编写自己的函数,即从字串的端点而不是从“ body”中删除这些字符。
好的,既然免责声明已经更新,下面是代码。
-- =============================================
-- Description: TRIMs a string 'for real&#