Laden...

SQL: Einfaches Ersetzen von Zeichen am Anfang/Ende von Strings

Erstellt von Palladin007 vor 9 Jahren Letzter Beitrag vor 9 Jahren 1.434 Views
Palladin007 Themenstarter:in
2.078 Beiträge seit 2012
vor 9 Jahren
SQL: Einfaches Ersetzen von Zeichen am Anfang/Ende von Strings

verwendetes Datenbanksystem: SQL Ce

Hi,

ich muss in einem SQL-Script das Suchen und Ersetzen von Zeichen am Anfang, bzw. am Ende einer aus der Datenbank gelesenen Zeichenkette einbauen.

Ich würde es ungern so lösen:

(CASE WHEN [Column] LIKE 'Pattern%' THEN [Column] ELSE STUFF([Column], 1, 2, 'Replacement') END)

Wirklich gut funktioniert das auch nicht, da gibt es bestimmt bessere Varianten, aber auch die möchte ich nicht.

Der Hintergrund, weshalb ich das nicht will, ist der, dass ich das mehrfach ineinander verschachtelt benötige und ab ein paar Ersetzungen wird das dann extrem unübersichtlich.

Daher suche ich nach einer Möglichkeit, einer Funktion, die genau sowas kann, bloß kurz und unter nur einmaliger Angabe der Spalte.

Gibt es dafür eine Möglichkeit?
Am besten wäre es, wenn das ungefähr so funktioniert:

REPLACE([ArticleNo], 'Anfang%', 'Ende')

Und dann wird aus

AnfangVomLied

folgendes:

EndeVomLied

Gibt es das und ich habe es nur übersehen?

Gruß

Palladin007 Themenstarter:in
2.078 Beiträge seit 2012
vor 9 Jahren

Ok, ich hab keine Lust mehr, lesen zu müssen, dass das nur über hässliche Umwege geht.

Folgendes habe ich jetzt genutzt:

(CASE WHEN [Column] LIKE 'Pattern%' THEN '' ELSE [Column] END)

Das erfüllt soweit die konkreten Anforderungen, wenn das dann mehrfach verschachtelt ist, sieht das maximal hässlich aus, aber es funktioniert.

Wenn jemand doch noch einen Geheimtipp hat, ich freue mich sehr drüber, ansonsten kann das hier geschlossen werden.

R
212 Beiträge seit 2012
vor 9 Jahren

Soetwas existiert, nennt sich Replace. wie MeinString.Replace(Originseq,newSeq);
edit;: [vergisses XD hab nich richtig gelesen sorry]

Edit2:
Aber villeicht helfen dir diese Liks weiter:
Einmal das Replace in mssql(hab jetz zu sqlce nix gefunden aber probieren kosst nix)
http://technet.microsoft.com/de-de/library/ms186862.aspx
und zum ausfühern des strings
http://technet.microsoft.com/de-de/library/ms188001.aspx

Palladin007 Themenstarter:in
2.078 Beiträge seit 2012
vor 9 Jahren

Das Problem an der Sache ist eine ganz seltsame Arbeitsweise eines Moduls.

Ich darf an der Stelle, an der ich arbeite, nur die Ausgabe der jeweiligen Spalte ändern, also mittels einer Funktion, oder Case-Konstrukt, etc. den Inhalt der Spalte geändert zurück geben.

Den Rest des SQL-Statements kann ich nicht ändern und neue Funktionen fest legen auch nicht.

Dennoch danke für die Links