Jump to content

Suchen und Löschen nach bestimmter Zeichenanzahl


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben

Hallo,

 

ich suche aktuell eine Lösung zum Anzeigen des Zeichens / der Zeichenkette ';' (Semikolon) innerhalb einer Spalte (ca. 250.000 Einträge), wenn dieses mindestens zweimal vorkommt.

 

Darüber hinaus soll im zweiten Schritt alle Zeichen nach dem zweiten Semikolon gelöscht werden.

 

 

Hat jemand eine Idee?

 

Danke vorab.

Geschrieben

Zur Suche nach mit zwei oder mehr Zeichen habe ich eine Variante gefunden. Vielleicht gibt es auch noch bessere:

 

select spalte from tabelle where spalte LIKE '%;%;%' ;

 

Nun brauche immer noch die Lösung für das Löschen der Zeichen nach und/oder inkl. dem zweiten Semikolon.

 

Danke.

  • 2 Monate später...
Geschrieben
Dein "Befehl" der Wahl: REPLACE

REPLACE (Transact-SQL)

 

Gruß

Carsten

Leider komme ich mit dem einfachen REPLACE nicht weiter.

 

Ausgangsbeispiele (Beispielzelle):

 

meier lh10; müller gf3; schulz 01

 

Ergebnis soll so aussehen:

 

meier lh10; müller gf3

 

oder

 

meier lh10; müller gf3;

 

Meine Vorstellungen mit einen einfachen Replace funktionieren leider nicht.

 

Beispiel-Statement:

UPDATE Exemplar SET Spalte = REPLACE(Spalte, '%;%;%', '%;%;');

 

Hinweis: Die Anzahl der Zeichen zwischen den Semikolons ist nicht eindeutig.

 

Ich möchte "nur" alle Zeichen nach dem zweiten Semikolon entfernen/löschen.

 

Vielleicht hat noch einer eine Idee.

 

Danke und Gruß

Geschrieben

Hallo,

das sollte klappen:

 

UPDATE Exemplar

SET Spalte = LEFT(Spalte, CHARINDEX(';', Spalte, CHARINDEX(';', Spalte)+1))

WHERE Spalte LIKE '%;%;%'

 

Das innerste CHARINDEX findet das erste Semikolon (Position).

Auf diese Position wird eine 1 addiert und dem zweiten CHARINDEX als Startwert der Suche übergeben.

Nun findet das zweite CHARINDEX die Position des zweiten Semikolon, das nun an LEFT übergeben wird.

LEFT bildet dann den neuen String.

Wichtig: mit WHERE muss(!) garantiert werden, dass die zu ändernden Strings auch mindestens 2 Semikolon enthalten, sonst gibt es leere Spalten.

 

CHARINDEX (Transact-SQL)

 

Am besten erstmal mit SELECT testen:

 

SELECT LEFT(Spalte, CHARINDEX(';', Spalte, CHARINDEX(';', Spalte)+1))

FROM Exemplar

WHERE Spalte LIKE '%;%;%'

 

 

Gruß Kai

Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...