Jeg tror ikke, at SQL Server har en indbygget split-funktion, så bortset fra en UDF, er det eneste andet svar, jeg kender, at kapre funktionen PARSENAME:
SELECT PARSENAME(REPLACE('Hello John Smith', ' ', '.'), 2)
PARSENAME tager en streng og deler den på punkttegn. Det tager et tal som sit andet argument, og det tal specificerer, hvilket segment af strengen, der skal returneres (arbejder bagfra og frem).
SELECT PARSENAME(REPLACE('Hello John Smith', ' ', '.'), 3) --return Hello
Et åbenlyst problem er, når strengen allerede indeholder et punktum. Jeg tror stadig, at det er den bedste måde at bruge en UDF... andre forslag?