SQL Server'da harfleri ve sayıları tutan metin dizelerini SQL Server'da temizleme
SQL Server'da 0-9 veya AZ arasında olmayan tüm karakterlerin metin dizelerini temizlemek için bir işlev oluşturun
genel bakış
Yardımcı programlar veritabanımız düzgün küçük işlevlerle doludur.
Bu, '0' ve 'Z' arasında olmayan tüm metinleri çıkararak, değerler arasında olmayan hiçbir öğe bulunamayana kadar metin dizesinde döngü yaparak, veritabanımıza koymadan önce verileri temizlemek için kullanılır. .
Temel işlev, giriş değerinin her bir karakteri arasında döngü yapmak ve Model İndeksi aralığına girmeyenleri kaldırmaktır.
Yalnızca sayılara ihtiyacınız varsa, [^0-Z] [^0-9] olur.
Alternatif olarak, yalnızca metin için [^aZ]'dir.
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')
genel bakış
"@" ve "." işaretlerini kaldırarak aşağıdaki 'infoclaytabasecouk' dizesini döndürür.