sql >> Databasteknik >  >> RDS >> Sqlserver

Behöver bättre lösning för att ta bort specialtecken och siffror

Du kan förenkla din funktion till en WHILE-slinga:

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

En CLR funktionen kan vara snabbare än den rena T-SQL-implementeringen.

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



  1. MYSQL spela upp dumpfilen allt eller inget i en transaktion

  2. generera dagar från datumintervall

  3. Infoga flera e-postmeddelanden till mysql med ett enda textområde

  4. Att köra mysqldump från ett PHP-skript fungerar inte men fungerar på SSH