SQL SERVER 排除特殊空格、排除换行符、排除回车符等

       有的时候从别的地方复制值填充到表字段中,但数据源会有各种各样的特殊空格,导致存入表中也出现错误,特别是通过数据库发送邮件,收件人如果格式有问题100%无法成功发送邮件,表面上看邮件ID没有问题,所以很难排查问题所在。 

       如果使用地方多,可以用一张标量函数(dbo.fn_Replace_CHAR),在需要排除特殊空格的时候调用,直接运行如下SQL即可在数据库中创建该标量函数,具体调用方法详见函数中备注。

GO

/****** Object:  UserDefinedFunction [dbo].[fn_Replace_CHAR]    Script Date: 2019/5/27 14:30:19 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<骚团长>
-- Create date: <2019-05-27>
-- Description:	<去空格、去特殊“空格”、去回车符、去换行符等等>
-- =============================================

/*******************************************
 * 调用方法如下:
 * 
SELECT 
dbo.fn_Replace_CHAR(mailto) AS 调用函数的,--把有特殊空格字段放到函数中
mailto AS 没调用函数的
FROM mailsendinfo (NOLOCK) WHERE TYPE='ITService_Timeout_Undone' AND rowguid='2F058C02-7B46-4FDF-886C-A905D8B58DF9' 
 *******************************************/
CREATE FUNCTION [dbo].[fn_Replace_CHAR]
(
	@Value NVARCHAR(2000)
)
RETURNS NVARCHAR(2000)
AS  

BEGIN 
	RETURN REPLACE(REPLACE(REPLACE(REPLACE(RTRIM(LTRIM(@Value)),CHAR(13),''),CHAR(10),''),CHAR(9),''),CHAR(13)+CHAR(10),'')
END
/*******************************************
* 以上替换符对应的功能说明如下:
* REPLACE(@Value,CHAR(13),'') -------------将回车符置为空
* REPLACE(@Value,CHAR(10),'') -------------将换行符置为空
* REPLACE(@Value,CHAR(9),'') --------------将tab空格符置为空
* REPLACE(@Value,CHAR(13)+CHAR(10),'') ----将回车换行符置为空
* 思路来源于:https://blog.csdn.net/liqfyiyi/article/details/6936478
 *******************************************/

 

GO

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值