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 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

Schreibe einen Kommentar