Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
SQL: Einfaches Ersetzen von Zeichen am Anfang/Ende von Strings
Palladin007
myCSharp.de - Member

Avatar #avatar-4140.png


Dabei seit:
Beiträge: 1457
Herkunft: Düsseldorf

Themenstarter:

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

beantworten | zitieren | melden

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ß
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Palladin007 am .
private Nachricht | Beiträge des Benutzers
Palladin007
myCSharp.de - Member

Avatar #avatar-4140.png


Dabei seit:
Beiträge: 1457
Herkunft: Düsseldorf

Themenstarter:

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
Robin0
myCSharp.de - Member



Dabei seit:
Beiträge: 213

beantworten | zitieren | melden

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 stringshttp://technet.microsoft.com/de-de/library/ms188001.aspx
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Robin0 am .
private Nachricht | Beiträge des Benutzers
Palladin007
myCSharp.de - Member

Avatar #avatar-4140.png


Dabei seit:
Beiträge: 1457
Herkunft: Düsseldorf

Themenstarter:

beantworten | zitieren | melden

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
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Palladin007 am .
private Nachricht | Beiträge des Benutzers