SQL Serverに分割関数が組み込まれているとは思わないので、UDFを除いて、私が知っている他の唯一の答えは、PARSENAME関数をハイジャックすることです。
SELECT PARSENAME(REPLACE('Hello John Smith', ' ', '.'), 2)
PARSENAMEは文字列を受け取り、ピリオド文字で分割します。 2番目の引数として数値を取り、その数値は、文字列のどのセグメントを返すかを指定します(後ろから前に向かって動作します)。
SELECT PARSENAME(REPLACE('Hello John Smith', ' ', '.'), 3) --return Hello
明らかな問題は、文字列にすでにピリオドが含まれている場合です。私はまだUDFを使用することが最善の方法だと思います...他に何か提案はありますか?