Gibt es eine SQL Server-Funktion zum Konvertieren von Zeichenketten in camel case?

8

Ich möchte keine benutzerdefinierte Funktion dafür erstellen, wenn bereits in SQL Server

vorhanden ist

Eingabezeichenfolge: This is my string to convert
Erwartete Ausgabe: This Is My String To Convert

    
girish 02.03.2011, 06:34
quelle

6 Antworten

22
%Vor%     
ashish.chotalia 02.03.2011 06:48
quelle
6

AFAIK, SQL Server hat keine eingebaute Funktion dafür.
Sie müssen eine benutzerdefinierte Funktion dafür schreiben.

Versuchen Sie es.

%Vor%

Ausgabe:

%Vor%     
Javascript is GOD 02.03.2011 06:44
quelle
6

Ich müsste mit "Nein, das gibt es nicht" gehen. Dies basiert auf mehrjähriger Durchsicht der verfügbaren String-Funktionen in T-SQL und einiger ziemlich neuer 5-tägiger Kurse in SQL Server 2008 R2.

Natürlich könnte ich immer noch falsch liegen:).

    
Vincent Vancalbergh 02.03.2011 06:51
quelle
2

Wenn das Ziel Ihrer Operation darin besteht, Zeichenketten von Namen zu verschönern, dann könnte die korrekte Großschreibung als der erste Buchstabe jedes Wortes definiert werden, der durch Nicht-Alphabet-Zeichen getrennt ist.

Andere Lösungen berücksichtigen nicht:

  1. Abstand beibehalten (insbesondere nachgestellte Leerzeichen).
  2. Beibehalten von NULL, leerer Zeichenfolge oder einer Zeichenfolge mit Leerzeichen.
  3. Verarbeitung von mehr als nur Leerzeichen (z. B. Bindestriche, Kommas, Unterstriche usw.)
  4. Behandlung von mehr als einem Nicht-Alpha-Zeichen zwischen Wörtern / Token.
  5. Behandlung von Ausnahmen (z. B. McDonald oder III wie in "James William Unterhalb der III ").

Hinweis: Meine Lösung behandelt keine Ausnahmen.
Wenn Sie sehr besorgt sind, dann schlage ich vor, eine CLR C # -Aufbau für diese zu schreiben, da es schwierig wird, und Zeichenfolgen sind ein Bereich, in dem C # ausgezeichnet ist.
Eine andere Lösung hier versucht, dies zu erklären, aber es würde immer noch "ivan terrible the iv" nehmen und "IV *** an Terrible The IV *" ausgeben.

Das ist die Funktion, die ich mir ausgedacht habe:

%Vor%


Du würdest es so nennen:

%Vor%


Die Ausgabe sieht folgendermaßen aus:

    
MikeTeeVee 27.11.2013 04:31
quelle
2

Meine Strategie

  • Wenn der Name bereits in Groß- und Kleinbuchstaben angegeben ist, vertrauen Sie darauf, dass es richtig ist.
  • Wenn der Name nicht in Groß- und Kleinschreibung angegeben ist, gehen Sie folgendermaßen vor:
  • Beschneiden Sie den Namen, um Leerraum zu entfernen
  • Konto für die Namen, die mit "Mc" wie "McDavid"
  • beginnen
  • Konto für Namen mit Apostrophen wie O'Reilly
  • Konto für Bindestrichnamen (Ehenamen) "Anderson-Johnson"
  • Konto für mehrere Wortnamen wie "La Russa"
  • Stellen Sie sicher, dass Suffixe, die im Feld names enthalten sind, entsprechend groß geschrieben werden

Der Code

Hier ist mein ursprünglicher Beitrag dazu: Konvertieren von String in Camel Case in SQL Server

%Vor%     
Narnian 06.10.2011 14:03
quelle
-3

Hier ist eine einfache Sache, mach es nicht kompliziert.

Oracle: SELECT initcap (lower ('Das ist MEINE striNg to conVerT')) FROM dual;

    
Sagar Tippe 09.01.2014 08:08
quelle

Tags und Links