Holen Sie sich Mitte name und Vorname name string in SQL Server
Habe ich Szenario wie
Kumar, Anand
S,Anand D
D,Ravi,K
Nun, ich habe zu extrahieren, first name, middle-name und last-name von oben Szenario in SQL-Server mit einer Abfrage. Da, um Mitte name von der vollständigen Namen, war hart und gleich als ersten Namen, also versuchte ich
select
CASE
WHEN CHARINDEX(' ', REVERSE('D,Ravi,K')) = 0
THEN RIGHT('D,Ravi,K', CHARINDEX(',', REVERSE('D,Ravi,K')) - 1)
WHEN CHARINDEX(' ', REVERSE('D,Ravi,K')) > 0
THEN RIGHT('D,Ravi,K', CHARINDEX(' ', REVERSE('D,Ravi,K')) - 1)
END AS 'MIDDLE NAME'
Aber, ich bin immer Fehler
536 Msg, Level 16, State 1, Line 1
Ungültige Länge parameter übergeben, um die richtige Funktion.
Kann mir jemand helfen, dieses Problem lösen?
Einer anderen Technik wird geschätzt werden, um zu extrahieren, die oben genannten Werte.
Sie müssen zuerst name, middle-name und last name als 3 diff-Spalten? Für Daten
ja.. in drei verschiedenen Spalten.
Wenn Sie handling/Modellierung-Namen, es ist eine gute Idee, werden Sie ein Experte in der Domäne. Die Chancen stehen gut, Sie wissen weniger über Namen, als Sie denken. W3C hat ein gutes Stück mit dem Titel Persönlichen Namen auf der ganzen Welt , demütigte mich, wenn ich es zum ersten mal gelesen.
Diese Frage findet grundlegende Informationen. Hat Ihr "Szenario", das keine Annahmen über die Reihenfolge, in welcher F,L,M angegeben werden, in jeder Zeile? Wenn nicht, und es ist bis Ihnen, zu bestimmen, was macht eine mögliche F,L,M, Sie sind garantiert, um Fehler in Ihrer Analyse. Chris schon hingewiesen auf den Grund. Lesen Sie auch stackoverflow.com/questions/5596706/... und stackoverflow.com/questions/17455658/human-name-parsing
Kumar, Anand
, Ananad ist Vorname oder Nachname?ja.. in drei verschiedenen Spalten.
Anand
werden erwägen, wie First Name
Wenn Sie handling/Modellierung-Namen, es ist eine gute Idee, werden Sie ein Experte in der Domäne. Die Chancen stehen gut, Sie wissen weniger über Namen, als Sie denken. W3C hat ein gutes Stück mit dem Titel Persönlichen Namen auf der ganzen Welt , demütigte mich, wenn ich es zum ersten mal gelesen.
Diese Frage findet grundlegende Informationen. Hat Ihr "Szenario", das keine Annahmen über die Reihenfolge, in welcher F,L,M angegeben werden, in jeder Zeile? Wenn nicht, und es ist bis Ihnen, zu bestimmen, was macht eine mögliche F,L,M, Sie sind garantiert, um Fehler in Ihrer Analyse. Chris schon hingewiesen auf den Grund. Lesen Sie auch stackoverflow.com/questions/5596706/... und stackoverflow.com/questions/17455658/human-name-parsing
InformationsquelleAutor | 2014-05-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie eine Funktion erstellen, die bekommt einen string und split in Teile. Folgende Gliederung der Funktion:
Dann rufen Sie es beim Lesen string von deiner anderen Tabelle oder den string direkt übergeben wie folgt:
Oder
nope, wie Sie benötigen, um eine Schleife über Sie. Sie können versuchen, mit
CTE
obwohlBei der Verwendung von
,
als Trennzeichen das funktioniert ok, aber wenn ich versuche, verwenden Sie eine Zeichenfolge wieName Mid Last
und führen Sie die Funktion alsdbo.splitnames('Name Mid Last',' ')
die Funktion anscheinend nie aufhört zu laufen (ich habe gewartet 10 Minuten und gab). Sowieso, es funktioniert wirklich gut, wenn ich ersetzen Sie "" mit,
InformationsquelleAutor TheVillageIdiot
InformationsquelleAutor Prabhat Kumar Sahoo
Ich denke, die richtige zu erstellen Felder für die einzelnen Namen:
Dann erhalten Sie mit:
SELECT
Abfrage... nichtCREATE
InformationsquelleAutor markandrewkato
Der Fehler auftreten, weil der string keine Leerzeichen.
Den CHARINDEX ist die Rückgabe eine LEERE oder 0.
Einen negativen Wert gegeben werden kann, um eine RICHTIGE Funktion.
Könntest du REPLACE() verwenden, ersetzen Sie das Komma mit Leerzeichen, um eine gewisse Einheitlichkeit in den Daten
InformationsquelleAutor Ben McLean
Bitte, mein Versuch:
InformationsquelleAutor TechDo
InformationsquelleAutor mohan111
Tat ich es. Vielen Dank für Ihre Hilfe
InformationsquelleAutor
Dies funktioniert bei String ist
FirstName/MiddleName/LastName
InformationsquelleAutor Nikul
Hier ist, wie man
First_Name
,Middle_Name
undLast_Name
ausFull_Name
(statt Full_Name Ort Ihre Attribut-Name)InformationsquelleAutor Kunal Choudhary