2017-06-13 3 views
0

Ich versuche nicht, irgendwelche Wörter zu ersetzen, ich versuche nur bestimmte Wörter aus der Tabelle zu entfernen, ohne die gesamte Zeichenfolge zu beseitigen. Ich versuchte dies:Entfernen mehrerer Wörter in einer Zeichenfolge

replace ([CRIDGI], 'inactive','') AS [CRID], 

und es funktionierte, aber ich brauche, um mehr Wörter hinzufügen als nur inaktiv

+1

Welche Datenbank verwenden Sie? Könnte das Wort mehr als einmal in der Zeichenfolge vorkommen? Könnte es mehrere Wörter in einer Zeichenfolge geben? Gib uns einige reale Beispiele vor und nach. –

+0

Wird die Datenbankunterstützung durch einen regulären Ausdruck ersetzt? –

Antwort

0

Sie dies mit verschachtelten ersetzt tun können:

select replace(replace([CRIDGI], 'inactive', ''), 'active', '') AS [CRID] 

Ach, SQL im Allgemeinen - und die meisten Datenbanken - haben ziemlich miese String-Manipulationsfähigkeiten. Es ist schwer, besser zu sein als die geschachtelte Ersetzung, obwohl Ihre Datenbank möglicherweise über einige Funktionen verfügt, die helfen könnten (wie Oracle und Postgres).

+0

Es hat funktioniert! Danke – rebecca

+3

Sei vorsichtig, wenn deine Schnur "radioaktiv" ist, wird sie als "Radio" enden, was nicht die beabsichtigte Handlung ist. Sie müssen vielleicht in die wunderbare Welt der regulären Ausdrücke gehen. :-). Ersetzen Sie "aktiv" nur durch NULL, wenn es von Leerzeichen umgeben ist oder wenn es am Ende der Zeile usw. auftritt. –

Verwandte Themen