Очистка текстовых строк в 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', удаляя символы «@» и «.».