在TSQL中替换换行符

我想替换(或删除)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&#
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值