sql >> データベース >  >> RDS >> Sqlserver

特殊文字と数字を削除するためのより良い解決策が必要

    関数を 1 つの WHILE ループに単純化できます:

    DECLARE @String NVARCHAR(MAX) = '231323Lig%$%$h$%t'
    DECLARE @Expression NVARCHAR(32) = '%[^A-Z]%'
    
    WHILE PATINDEX(@Expression, @String) > 0
        SET @String = STUFF(@String, PATINDEX(@Expression, @String), 1, '')
    
    RETURN @String
    

    CLR 関数は、純粋な T-SQL 実装よりも高速になる可能性があります。

    Regex.Replace(str, "[^a-zA-Z]+", "", RegexOptions.Compiled)
    



    1. 動的列名を使用したSQL更新

    2. OracleからPostgreSQLへ:移行する理由

    3. mySQLMAX値をJava変数に設定します

    4. PythonはMySQLのプリペアドステートメントをサポートしていますか?