پاک کردن رشته های متنی در 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" زیر را برمی گرداند ، "@" و "." را از بین می برد.