darebo 10 Geschrieben 14. November 2011 Melden Teilen Geschrieben 14. November 2011 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. Zitieren Link zu diesem Kommentar
darebo 10 Geschrieben 14. November 2011 Autor Melden Teilen Geschrieben 14. November 2011 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. Zitieren Link zu diesem Kommentar
MrCocktail 192 Geschrieben 15. November 2011 Melden Teilen Geschrieben 15. November 2011 Hm... Ohne es mit SQL zu machen.... Export zu CSV, CVS in Excel bearbeiten, CSV import Zitieren Link zu diesem Kommentar
phoenixcp 10 Geschrieben 15. November 2011 Melden Teilen Geschrieben 15. November 2011 Dein "Befehl" der Wahl: REPLACE REPLACE (Transact-SQL) Gruß Carsten Zitieren Link zu diesem Kommentar
darebo 10 Geschrieben 1. Februar 2012 Autor Melden Teilen Geschrieben 1. Februar 2012 Dein "Befehl" der Wahl: REPLACEREPLACE (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ß Zitieren Link zu diesem Kommentar
hh2000 10 Geschrieben 4. Februar 2012 Melden Teilen Geschrieben 4. Februar 2012 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 Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 4. Februar 2012 Melden Teilen Geschrieben 4. Februar 2012 Moin, und ausgehend von diesem Problem solltest du mal darüber nachdenken, die Tabelle zu normalisieren. Gruß, Nils Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.