[green]--Function Parameters[/green]
[blue]DECLARE[/blue] @Str [blue]varchar[/blue](200), @StrToReplace [blue]varchar[/blue](200)
[blue]SELECT[/blue] @StrToReplace = [red]' Fluently'[/red], @Str = [red]'German. Speaks Spanish Fluently, Dutch Fluently, English Fluently, Italian Advanced, French Advanced.'[/red]
[green]--Begin Function[/green]
[blue]Declare[/blue] @LenOfRemove [blue]int[/blue], @LenOfString [blue]int[/blue]
[blue]SELECT[/blue] @LenOfRemove = [purple]Len[/purple](@StrToReplace), @LenOfString = [purple]Len[/purple](@Str)
[green]--identify last index of 'string to remove' [/green]
[blue]Declare[/blue] @tmpLoc [blue]int[/blue], @LastLoc [blue]int[/blue], @LocToDelete [blue]int[/blue]
[blue]Select[/blue] @tmpLoc = 1, @LastLoc = 0, @LocToDelete = 0
[blue]While[/blue] @tmpLoc > 0
[blue]BEGIN[/blue] [green]--Get 'next' occurrence[/green]
[blue]SELECT[/blue] @tmpLoc = [purple]CharIndex[/purple](@StrToReplace, @Str, @LastLoc)
[blue]IF[/blue] @tmpLoc > 0 [green]--one exists after the last identified[/green]
[blue]BEGIN[/blue]
[blue]SELECT[/blue] @LocToDelete = @LastLoc, @LastLoc = @tmpLoc
[blue]IF[/blue] @LocToDelete > 0
[blue]BEGIN[/blue] [green]--A duplicate value exists[/green]
[blue]SELECT[/blue] @Str = [purple]LEFT[/purple](@Str, @LocToDelete-1) +
[purple]Substring[/purple](@Str, @LocToDelete + @LenOfRemove, @LenOfString)
[blue]SELECT[/blue] @tmpLoc = [purple]CharIndex[/purple](@StrToReplace, @Str, @LastLoc)
[blue]IF[/blue] @tmpLoc > 0
[blue]SELECT[/blue] @LastLoc = @tmpLoc
[blue]END[/blue]
[blue]END[/blue]
[blue]END[/blue]
[green]--END FUNCTION[/green]
[blue]SELECT[/blue] [red]'German. Speaks Spanish Fluently, Dutch Fluently, English Fluently, Italian Advanced, French Advanced.'[/red]
[blue]UNION[/blue]
[blue]Select[/blue] @Str