Вы можете изменить метод ввода до 4 отдельных полей?
Если вы не можете, то примените конкретный делиметр между различными частями строки? В тех случаях, когда фамилия построена на 2 слова, нет детерминированного способа обработки строки, если разделитель является [пробелом] или любым другим символом типа '-' или ', который является общим в именах.
Использование делиметра типа '|' :
Declare @FullName varchar(100) = 'FirstName|MidleName|MiddleNameTwo|LastName'
Print 'FirstName = ' + Substring(@FullName,1,charindex('|',@FullName)-1)
SELECT @FullName = Substring(@FullName,charindex('|',@FullName)+1,len(@fullName))
Print 'MiddleName1 = ' + Substring(@FullName,1,charindex('|',@FullName)-1)
SELECT @FullName = Substring(@FullName,charindex('|',@FullName)+1,len(@fullName))
Print 'MiddleName2 = ' + Substring(@FullName,1,charindex('|',@FullName)-1)
SELECT @FullName = Substring(@FullName,charindex('|',@FullName)+1,len(@fullName))
Print 'LastName = ' + @FullName
Это будет работать, если у вас нет одной детали, если вы поддерживаете структуру.
Declare @FullName varchar(100) = 'FirstName|MidleName||LastName'
Print 'FirstName = ' + Substring(@FullName,1,charindex('|',@FullName)-1)
SELECT @FullName = Substring(@FullName,charindex('|',@FullName)+1,len(@fullName))
Print 'MiddleName1 = ' + Substring(@FullName,1,charindex('|',@FullName)-1)
SELECT @FullName = Substring(@FullName,charindex('|',@FullName)+1,len(@fullName))
Print 'MiddleName2 = ' + Substring(@FullName,1,charindex('|',@FullName)-1)
SELECT @FullName = Substring(@FullName,charindex('|',@FullName)+1,len(@fullName))
Print 'LastName = ' + @FullName
Пожалуйста, измените свой вопрос и предоставить образцы того, что имена похожи. Кроме того, используете ли вы SQL Server (как указано в заголовке) или MySQL (как это было предложено тегами)? –
Является ли это фиксированным набором имен, где вы знаете, что не будет таких странностей, как «Мэри Джейн Воган Уильямс», где «Мэри Джейн» - это имя, а «Воган Уильямс» - это фамилия? Имейте в виду, что имена безумно сложны, и многие из них не следуют никаким общим правилам, которые вы могли бы придумать. –