清理SQL Server中的文本字符串,保留SQL Server中的字母和数字
创建一个函数来清除不在SQL Server中的0-9或AZ之间的所有字符的文本字符串
概述
我们的实用程序数据库充满了精巧的小功能。
通过清除所有不在'0'和'Z'之间的文本,循环遍历文本字符串,直到找到不在值之间的项目为止,以此来清理数据,然后再将其放入数据库中。
基本功能是简单地循环遍历输入值的每个字符,并删除不属于Pattern Index范围的任何字符。
如果只需要数字,则[^ 0-Z]变为[^ 0-9]。
另外,对于仅文本,它是[^ aZ]。
SQL
CREATE Function [dbo].[CleanToText](@Data VARCHAR(100))Returns VARCHAR(100)AS BEGIN DECLARE @Letter INT SET @Letter =PATINDEX('%[^0-Z]%',@Data) BEGIN WHILE @Letter>0 BEGIN SET @Data =STUFF(@Data,@Letter,1,'') SET @Letter =PATINDEX('%[^0-Z]%',@Data) END END RETURN @DataENDGOSELECT dbo.CleanToText('info@claytabase.co.uk')
概述
返回以下字符串'infoclaytabasecouk',删除“ @”和“。”。