1. ホーム
  2. sql-server

[解決済み] SQL Serverで文字列から非アルファベット文字をすべて取り除くには?

2022-04-15 21:08:24

質問

文字列からアルファベット以外の文字をすべて取り除くにはどうしたらよいでしょうか?

英数字以外はどうですか?

これはカスタム関数でなければならないのでしょうか、それとももっと汎用的なソリューションがあるのでしょうか?

どのように解決するのですか?

この関数を試してみてください。

Create Function [dbo].[RemoveNonAlphaCharacters](@Temp VarChar(1000))
Returns VarChar(1000)
AS
Begin

    Declare @KeepValues as varchar(50)
    Set @KeepValues = '%[^a-z]%'
    While PatIndex(@KeepValues, @Temp) > 0
        Set @Temp = Stuff(@Temp, PatIndex(@KeepValues, @Temp), 1, '')

    Return @Temp
End

このように呼び出します。

Select dbo.RemoveNonAlphaCharacters('abc1234def5678ghi90jkl')

このコードを理解すれば、他の文字も削除できるように変更することは比較的簡単であることがわかるはずです。 検索パターンを渡すために、これを十分にダイナミックにすることもできるだろう。