Je ne crois pas que SQL Server ait une fonction de division intégrée, donc à part un UDF, la seule autre réponse que je connaisse est de détourner la fonction PARSENAME :
SELECT PARSENAME(REPLACE('Hello John Smith', ' ', '.'), 2)
PARSENAME prend une chaîne et la divise sur le caractère point. Il prend un nombre comme deuxième argument, et ce nombre spécifie le segment de la chaîne à renvoyer (de l'arrière vers l'avant).
SELECT PARSENAME(REPLACE('Hello John Smith', ' ', '.'), 3) --return Hello
Le problème évident est lorsque la chaîne contient déjà un point. Je pense toujours qu'utiliser une UDF est le meilleur moyen... avez-vous d'autres suggestions ?