Fatih99 Geschrieben 13. Oktober 2010 Teilen Geschrieben 13. Oktober 2010 Hallo, kann mir jemand bitte helfen !! ( MSSQL 2005 ) ich möchte mit einem Sql Befehl ein Feld ab einem besteimmten Zeichen alles rechts davon löschen. zBsp: 12345-6654 332-54 66-6 Ergebnis: 12345 332 66 danke im Vorraus. Gruß Fatih Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Fatih99 Geschrieben 13. Oktober 2010 Autor Teilen Geschrieben 13. Oktober 2010 hab die Atwort gefunden !!! UPDATE tabname SET columname = LEFT(columname, charindex('-', columname) - 1) Gruß Fatih Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gateway_man Geschrieben 13. Oktober 2010 Teilen Geschrieben 13. Oktober 2010 (bearbeitet) Eine Möglichkeit: Beispiel: Select Substring(StringCol,0,COALESCE(CHARINDEX('|'),LEN(StringCol))) as 'Ergebnis' From table1 Erklärung: Du bildest einen Substring vom Wert der ZielColum mit dem Startindex 0 und als länge lässt du den Indexwert des zu suchenden Chars angeben. Wenn der Character nicht gefunden werden konnte wird stattdessen die länge des ursprünglichen String als länge des Substrings hergenommen. Beschreibung aller Befehle: Substring COALESCE CHARINDEX LEN lg Gateway Deine Lösung dürfte weitaus kürzer sein Bearbeitet 13. Oktober 2010 von Gateway_man Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
streffin Geschrieben 13. Oktober 2010 Teilen Geschrieben 13. Oktober 2010 Eine Möglichkeit: Beispiel: Select Substring(StringCol,0,COALESCE(CHARINDEX('|'),LEN(StringCol))) as 'Ergebnis' From table1 Erklärung: Du bildest einen Substring vom Wert der ZielColum mit dem Startindex 0 und als länge lässt du den Indexwert des zu suchenden Chars angeben. Wenn der Character nicht gefunden werden konnte wird stattdessen die länge des ursprünglichen String als länge des Substrings hergenommen. UPDATE a SET a.feld = LEFT (a.feld, CHARINDEX('-', a.feld) - 1) FROM Tabelle a WHERE a.feld like '%-%' Alternativ, WHERE CHARINDEX('-', a.feld) > 0 Gruß Sven das wird nicht funktionieren. Zitat : "Wenn expression1 in expression2 nicht gefunden wird, gibt CHARINDEX 0 zurück." Coalesce gibt dir aber die erste Expresion die nicht NULL ist. Daher hast du hinterher ein LEFT(string,0) was in dem Update dann sehr ungut kommt wenn man das ausführt, und das geuschte Zeichen im String nicht vorkommt. Mein Vorschlag zu der Sache wäre : Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gateway_man Geschrieben 13. Oktober 2010 Teilen Geschrieben 13. Oktober 2010 Wohl wahr. Allerdings kann man ja noch auf 0 prüfen. Naja alles in allem wäre das eh eine überdimensionierte Lösung. lg Gateway Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.