Не вярвам, че SQL Server има вградена функция за разделяне, така че освен UDF, единственият друг отговор, който знам, е да присвоя функцията PARSENAME:
SELECT PARSENAME(REPLACE('Hello John Smith', ' ', '.'), 2)
PARSENAME взема низ и го разделя на символа за точка. Той приема число като втори аргумент и това число определя кой сегмент от низа да се върне (работи отзад напред).
SELECT PARSENAME(REPLACE('Hello John Smith', ' ', '.'), 3) --return Hello
Очевидният проблем е, когато низът вече съдържа точка. Все още мисля, че използването на UDF е най-добрият начин...някакви други предложения?