मुझे विश्वास नहीं है कि SQL सर्वर में एक अंतर्निहित स्प्लिट फ़ंक्शन है, इसलिए UDF के अलावा, मुझे पता है कि एकमात्र अन्य उत्तर PARSENAME फ़ंक्शन को हाईजैक करना है:
SELECT PARSENAME(REPLACE('Hello John Smith', ' ', '.'), 2)
PARSENAME एक स्ट्रिंग लेता है और उसे आवर्त वर्ण पर विभाजित करता है। यह अपने दूसरे तर्क के रूप में एक संख्या लेता है, और वह संख्या निर्दिष्ट करती है कि स्ट्रिंग का कौन सा खंड वापस लौटना है (पीछे से आगे की ओर काम करना)।
SELECT PARSENAME(REPLACE('Hello John Smith', ' ', '.'), 3) --return Hello
स्पष्ट समस्या तब होती है जब स्ट्रिंग में पहले से ही एक अवधि होती है। मुझे अब भी लगता है कि UDF का उपयोग करना सबसे अच्छा तरीका है...कोई अन्य सुझाव?