1. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Teil eines Dateinamens entfernen

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von Henri, 19 November 2019.

  1. Henri

    Henri Benutzer

    Ich versuche, einen Teil eines Dateinamens nach einem bestimmten Zeichen zu entfernen.
    die Tabellename lautet [Beschreibung] die Spalte [displayname]

    SELECT [displayname]
    FROM [dbo].[Beschreibung]

    Aktuelle Dateinamen:

    KM_003__Rheihe 4 ~ DEL ~ 389948.pdf
    KM_004__Reite 2 und Reite 3 ~ DEL ~ 391098.pdf
    KM_008__Grundriss ~ DEL ~ 391042.pdf
    KM_006__Breite~DEL~398646.zip
    KM_005_Hoch~DEL~356477.dwg

    Was ich will, dass es ist:

    KM_003__Rheihe 4.pdf
    KM_004__Reite 2 und Reite 3.pdf
    KM_008__Grundriss.pdf
    KM_006__Breite
    KM_005_Hoch

    Jede Hilfe / Hinweise wäre sehr dankbar
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Stichwort Regex.
     
  3. ukulele

    ukulele Datenbank-Guru

    Oder vielleicht sowas wie
    Code:
    SELECT (CASE displayname LIKE '%~%' THEN rtrim(left(displayname,charindex('~',displayname)-1)) ELSE displayname END) AS displayname FROM tabelle
     
  4. Henri

    Henri Benutzer

    Hallo ukulele,
    ich kann es leider nicht ausführen gibt ein Syntax-problem an der Stelle
    LIKE '%~%'
     
  5. ukulele

    ukulele Datenbank-Guru

    Sry
    Code:
    SELECT (CASE WHEN displayname LIKE '%~%' THEN rtrim(left(displayname,charindex('~',displayname)-1)) ELSE displayname END) AS displayname FROM tabelle
     
  6. Henri

    Henri Benutzer

    Hallo ukulele,
    es funktioniert, aber er schneidet auch die Dateitype mit,
    dh. wenn wir es haben
    km_05a_binder678~DEL~1914.pdf
    schneidet und gibt
    km_05a_binder678
    kannst du bitte noch was .
    Danke in Voraus
     
  7. Henri

    Henri Benutzer

    das heisst gibt kein kluger Mensch um mir dabei zu helfen, diese Anfrage anzupassen, damit die Dateitype nicht geschnitten werden

    SELECT (CASE WHEN displayname LIKE '%~%' THEN rtrim(left(displayname,charindex('~',displayname)-1)) ELSE displayname END) AS displayname FROM tabelle
     
  8. ukulele

    ukulele Datenbank-Guru

    Ne das heißt das ich im Moment aus zeitgründen selten hier vorbei schaue.
    Code:
    SELECT (CASE WHEN displayname LIKE '%~%' AND displayname LIKE '%.%' THEN rtrim(left(displayname,charindex('~',displayname)-1)) + right(displayname,charindex('.',reverse(displayname))) ELSE displayname END) AS displayname FROM tabelle
    Kann aber Blödsinn ergeben wenn z.B. ~ irgendwann mal hinter dem Punkt steht oder so. Außerdem müsste es sich um VARCHAR handeln, bei CHAR etc. kann das auch daneben gehen.
     
  9. Henri

    Henri Benutzer

    Hallo ukulele,

    funktioniert es !
    bin ich sehr dankbar für deine Hilfe, du bist wirklich hilfbereit.
    Danke
     
    Walter gefällt das.
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden