sql >> Database teknologi >  >> RDS >> Sqlserver

Har brug for en bedre løsning for at fjerne specialtegn og tal

Du kan forenkle din funktion til én WHILE-løkke:

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 funktion kunne være hurtigere end den rene T-SQL-implementering.

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



  1. Oracle -- MED KLAUSUL => FLET? (Syntaks fejl, )

  2. ORA-31011:XML-parsing mislykkedes - ugyldige tegn (oracle sql)

  3. Neo4j installation

  4. MySQL række til kolonne