आप अपने फ़ंक्शन को एक 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
कार्य शुद्ध टी-एसक्यूएल कार्यान्वयन से तेज हो सकता है।
Regex.Replace(str, "[^a-zA-Z]+", "", RegexOptions.Compiled)