Użyliśmy funkcji zrobić coś podobnego, że przelotowe napisu, chociaż to było głównie do usuwania znaków, które nie były w „@ValidCharacters” strunowy. Przydało się to do usunięcia wszystkiego, czego nie chcieliśmy - zwykle nie alfanumerycznych znaków, choć myślę, że mieliśmy również miejsce w tym łańcuchu, miejsce, cytat, pojedynczy cytat i garstkę innych. To było naprawdę używane do usuwania niedrukowalnych postaci, które zazwyczaj wkradały się, więc może nie być idealne dla twojej sprawy, ale może dać ci kilka pomysłów.
CREATE FUNCTION [dbo].[ufn_RemoveInvalidCharacters]
(@str VARCHAR(8000), @ValidCharacters VARCHAR(8000))
RETURNS VARCHAR(8000)
BEGIN
WHILE PATINDEX('%[^' + @ValidCharacters + ']%',@str) > 0
SET @str=REPLACE(@str, SUBSTRING(@str ,PATINDEX('%[^' + @ValidCharacters +
']%',@str), 1) ,'')
RETURN @str
END
użycie innego 'REPLACE':' REPLACE (replace (T2 [ShipToCode], '&', 'a'), '', ''). ' – Lamak