Limpeza de strings de texto no SQL Server mantendo letras e números no SQL Server
Crie uma função para limpar strings de texto de todos os caracteres que não estejam entre 0-9 ou AZ no SQL Server
Visão geral
Nosso banco de dados de utilitários está cheio de pequenas funções interessantes.
Este é usado para limpar os dados antes de colocá-los em nosso banco de dados, removendo todo o texto que não está entre '0' e 'Z', repetindo a string de texto até que nenhum item que não esteja entre os valores possa ser encontrado .
A função básica é simplesmente percorrer cada caractere do valor de entrada e remover qualquer um que não se enquadre na faixa de índice de padrão.
Se você precisava apenas de números, [^ 0-Z] se torna [^ 0-9].
Como alternativa, apenas para texto é [^ 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')
Visão geral
Retorna a seguinte string 'infoclaytabasecouk', removendo o "@" e ".".