Nano Hash - криптовалюты, майнинг, программирование

SQL Server отдельно: Имя, Отчество и Фамилия

Добрый день! Я получаю «Varchar», который является полным именем клиента, и мне нужно разделить этот «varchar» как:

  • "Имя Отчество ОтчествоДва Фамилия"

  • Необходимо ввести «Имя» на «Col1»

  • Нужно ввести «Отчество, ОтчествоДва в «столбце2»

  • Необходимо ввести «Фамилия» в «Col3»

Спасибо за вашу помощь!

22.12.2014

  • Пожалуйста, отредактируйте свой вопрос и предоставьте образцы того, как выглядят имена. Кроме того, вы используете SQL Server (как следует из названия) или MySQL (как следует из тегов)? 22.12.2014
  • Это фиксированный набор имен, где вы знаете, что не будет никаких странностей, таких как Мэри Джейн Воган Уильямс, где Мэри Джейн — это имя, а Воган Уильямс — фамилия? Имейте в виду, что имена безумно сложны, и многие из них не следуют каким-либо общим правилам, которые вы могли бы придумать. 22.12.2014

Ответы:


1

Вы должны использовать подзапросы для этой задачи

 INSERT INTO names(firstname, middlename, lastname)
 SELECT substringfunctionofyours(name), substringfunctionofyours(name), 
 substringfunctionofyours(name) FROM namefield

имейте в виду, что это всего лишь фиктивный запрос, он не будет работать, если вы будете использовать его таким образом

22.12.2014

2

Можете ли вы изменить метод ввода на 4 отдельных поля?

Если вы не можете, тогда реализуйте определенный разделитель между различными частями строки? В случаях, когда фамилия состоит из двух слов, не существует детерминированного способа обработки строки, если в качестве разделителя используется [пробел] или любой другой символ, например "-" или ", которые распространены в именах.

Использование разделителя, например '|' :

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
22.12.2014

3

Допустим, у вас есть такое имя "ABC DEF GHI"

теперь вам нужны First Name, Middle Name и last Name из этой строки.

Вот так

 Select 
 Substring(Cast('ABC DEF GHI' as nvarchar),0,charindex(' ',Cast('ABC DEF GHI' as nvarchar))) as Col1,
 Substring(Cast('ABC DEF GHI' as nvarchar),charindex(' ',Cast('ABC DEF GHI' as nvarchar)),4)as Col2,
 Substring(Cast('ABC DEF GHI' as nvarchar),8,charindex(' ',Cast('ABC DEF GHI' as nvarchar)))as Col3

Примечание. This is MSSQL SERVER Query and Substring Function is Built in in MSSQL SERVER

22.12.2014
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..