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