Ik geloof niet dat SQL Server een ingebouwde split-functie heeft, dus behalve een UDF, is het enige andere antwoord dat ik weet, de PARSENAME-functie te kapen:
SELECT PARSENAME(REPLACE('Hello John Smith', ' ', '.'), 2)
PARSENAME neemt een string en splitst deze op het punt-teken. Het neemt een getal als tweede argument en dat getal geeft aan welk segment van de tekenreeks moet worden geretourneerd (van achteren naar voren).
SELECT PARSENAME(REPLACE('Hello John Smith', ' ', '.'), 3) --return Hello
Een voor de hand liggend probleem is wanneer de string al een punt bevat. Ik denk nog steeds dat het gebruik van een UDF de beste manier is... nog andere suggesties?