Member 11776570 Ответов: 1

Как разделить finame, lname mname


Я должен отделить эти данные
KIM, SUSAN H
но он не отделен в форме фамилии, имени и отчества

Что я уже пробовал:

я использую charindex() & substring() в sql

ZurdoDev

Да, вам нужно использовать CHARINDEX или STRING_SPLIT() или какую-то другую текстовую функцию.

Member 11776570

Но как я его использовал, но одно имя имеет onlu фамилию и имя.

ZurdoDev

Затем, возможно, оператор IF.

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

Eric Lynch

Однако будьте осторожны, любая техника будет зависеть от культуры. Кроме того, даже в культурах, которые имеют четкое первое, среднее, последнее, вам нужно учитывать нечетные случаи шара. Люди без среднего имени и люди с несколькими средними именами. Кроме того, иногда встречаются действительно исключительные случаи с одним именем (например, Cher).

Eric Lynch

Отличный список! Хотя, я думаю, что продолжу обманывать на следующем предположении :) 11. Все имена людей отображаются в кодовых точках Юникода.

1 Ответов

Рейтинг:
0

OriginalGriff

Это проблема презентационного уровня, и, как уже упоминалось, она осложняется культурными проблемами, а также исключениями. Например, один джентльмен в Великобритании изменил свою фамилию на "The Yorkshire Bank pLC are fascist b*st*ards" - и это его юридическое имя используется во всех официальных документах. В мире нет системы, которая могла бы отличить это от "Анна Берта Сесилия Диана Эмили Фанни Гертруда Ипатия Инес Джейн Кейт Луиза мод Нора Офелия Пруденс Куинс Ребекка Сара Тереза Улисис Венера Винифред Ксенофонт Йетти Зенон Пеппер", родившейся в 1883 году. Кроме того, есть люди вроде меня, у которых вообще нет отчества.

Единственный разумный способ сделать это-получить информацию от пользователя в отдельных текстовых полях и хранить их в отдельных столбцах: постобработка будет ужасно сложной в SQL (который в лучшем случае имеет очень простые функции манипулирования строками) и потерпит неудачу в огромном количестве случаев.


Eric Lynch

Да, я ходил в школу с ребенком, чье полное официальное имя было Джи...и это было задолго до того, как другой ОГ стал признанным титулом :)

Member 11776570

Здесь я не спрашивал о названии школы или о том, как она называется. Я просто попросил ответа.

OriginalGriff

И я объяснил, что нет простого ответа.
Есть сложный ответ, который не будет работать много времени, и есть "перепроектировать и сделать это правильно". Но не существует "одной строки кода, которая делает магию".
Извините, но это правда.

Member 11776570

я использовал это
выбрать различные
Подстрока([имя_столбца], функция charindex(' ', [имя_столбца]) +1,лен([имя_столбца])- функция charindex(' ',обратный([имя_столбца]))) Как имя

,подстрока([имя_столбца],функция isnull(null, если(функция charindex(' ',[имя_столбца],функция charindex(' ',[имя_столбца])+(1)),(0)), функция charindex(' ',[имя_столбца])),
дело
когда
charindex(' ', [columnname])=(0)
затем
(0)
еще
лен([имя_столбца])
конец) как минит
,[columnname] как orignal_data
из [tablename]