SQLServerの文字と数字を保持するSQLServerのテキスト文字列のクレンジング
SQL Serverで0〜9またはAZの間にないすべての文字のテキスト文字列をクレンジングする関数を作成します
概要概要
私たちのユーティリティデータベースは、きちんとした小さな機能でいっぱいです。
これは、データをデータベースに配置する前に、「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」を返し、「@」と「。」を削除します。