Der beste Weg, dies zu erreichen, ist sehr einfach und effizient :
SELECT 'àéêöhello!' Collate SQL_Latin1_General_CP1253_CI_AI
was 'aeeohello!'
ausgibtDie Zeichenfolge darf nicht Unicode sein. Wenn Sie ein nvarchar haben, wandeln Sie es einfach in varchar um, bevor Sie die Sortierung verwenden.
Hier ist eine Funktion, die die OP-Anforderungen erfüllt:
create function [dbo].[RemoveExtraChars] ( @p_OriginalString varchar(50) )
returns varchar(50) as
begin
declare @i int = 1; -- must start from 1, as SubString is 1-based
declare @OriginalString varchar(100) = @p_OriginalString Collate SQL_Latin1_General_CP1253_CI_AI;
declare @ModifiedString varchar(100) = '';
while @i <= Len(@OriginalString)
begin
if SubString(@OriginalString, @i, 1) like '[a-Z]'
begin
set @ModifiedString = @ModifiedString + SubString(@OriginalString, @i, 1);
end
set @i = @i + 1;
end
return @ModifiedString
end
Dann der Befehl:
select dbo.RemoveExtraChars('aèàç=.32s df')
Ausgänge
aeacsdf