2017-06-25 1 views
0

Ich bin neu in PostgreSQL und versuche, eine Abfrage zu erstellen, die bestimmte Spalten innerhalb einer Tabelle bereinigt. Mit "Aufräumen" meine ich alle Zeichen vor oder nach einem bestimmten Symbol zu löschen.Postgresql, Löschen von Zeichen in Strings

Ich habe eine Spalte namens "Kampagne" in einer Tabelle namens "Adwords". Die Spalte hat diese Zeichenfolge/Struktur in allen Zeilen, DE-SRC-Brand. Der einzige Ort, den ich in dieser Kolumne behalten möchte, wäre, wo Brand aktuell ist. Ich hatte dies vorher manuell über Excel gemacht, indem ich eine einfache Suche durchführte und durch "* -" als Suchkriterium ersetzte.

Wie würde diese Formel in PostgreSQL übersetzt werden? Wie würde es sich dann auch ändern, wenn ich Zeichen vor einem bestimmten Symbol löschen möchte. Bitte lassen Sie mich wissen, wenn etwas unklar ist, da ich noch neu in diesem Programm bin.

+1

Bearbeiten Sie Ihre Frage und Beispieldaten zur Verfügung stellen und die gewünschte Ergebnisse. Die Beschreibung ist eher abstrakt. –

+0

Willkommen bei StackOverflow! Bitte lesen Sie [Wie Sie eine gute SQL-Frage stellen können] (https://meta.stackoverflow.com/a/271056/1920232) und stellen Sie Beispieldaten und das darauf basierende gewünschte Ergebnis bereit. – peterm

Antwort

0

Wenn Sie die Marke extrahieren möchten, können Sie substring() mit einem Muster verwenden:

select substring(campaign from '%-%-#"%#"' for '#') as brand 
from adwords; 

Sie diese in eine update integrieren können:

update adwords 
    set campaign = substring(campaign from '%-%-#"%#"' for '#') 
    where campaign like '%-%-%'; 
+0

Hallo, das hat perfekt funktioniert. Ich bin mir aber nicht ganz sicher was genau das tat. Was wäre, wenn ich Charaktere nach einem bestimmten Symbol entfernen möchte? Als ein Beispiel, wenn ich Brand {e} hatte und ich versuchte, alle Vorkommnisse des Übereinstimmungstyps zu eliminieren, die mit "{" beginnen würden. Danke für die Hilfe. -Ian –