Pulizia delle stringhe di testo in SQL Server mantenendo lettere e numeri
Creare una funzione per pulire le stringhe di testo da tutti i caratteri che non sono compresi tra 0-9 o A-Z in SQL Server
Panoramica
Il nostro database di utilità è pieno di piccole funzioni pulite.
Questo viene utilizzato per pulire i dati prima di inserirli nel nostro database, eliminando tutto il testo che non è compreso tra '0' e 'Z', scorrendo la stringa di testo fino a quando non è possibile trovare elementi che non si trovano tra i valori .
La funzione di base è semplicemente scorrere ogni carattere del valore di input e rimuovere quelli che non rientrano nell'intervallo dell'indice di pattern.
Se hai bisogno solo di numeri, [^0-Z] diventa [^0-9].
In alternativa per solo testo è [^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')
Risultato
Restituisce la seguente stringa 'infoclaytabasecouk', rimuovendo "@" e ".".