تنظيف السلاسل النصية في SQL Server مع الاحتفاظ بالحروف والأرقام في SQL Server
قم بإنشاء دالة لتنظيف السلاسل النصية لجميع الأحرف التي ليست بين 0-9 أو AZ في SQL Server
ملخص
قاعدة بيانات المرافق لدينا مليئة بالوظائف الصغيرة الأنيقة.
يتم استخدام هذا لتطهير البيانات قبل وضعها في قاعدة البيانات الخاصة بنا ، عن طريق إزالة كل النصوص التي ليست بين '0' و 'Z' ، والتكرار على الرغم من السلسلة النصية حتى لا يمكن العثور على عناصر ليست بين القيم .
الوظيفة الأساسية هي ببساطة التنقل عبر كل حرف من قيمة الإدخال وإزالة أي شيء لا يقع ضمن نطاق مؤشر النمط.
إذا كنت بحاجة إلى أرقام فقط ، فسيصبح [^ 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' ، وإزالة "@" و ".".