Willkommen bei Entwickler-Forum.
Ergebnis 1 bis 3 von 3
  1. #1
    Neuer Benutzer
    Registriert seit
    29.11.2017
    Beiträge
    4

    Standard Update des eigenen Datensatzes

    Ich möchte ein Feld mit einem Teilstring des selben Feldes überschreiben, kämpfe aber mit dem Loop...

    In unserer Adressen-Tabelle steht im Feld "Name" noch "Herr" oder "Frau" vor dem eigentlichen Namen (z.B. Herr Heinrich Müller). Es soll nur noch der Name im Feld stehen.
    Der Select des Substrings sieht so aus:

    select SUBSTRING(Name, 6,30)
    FROM adressen
    where Name like 'Herr%'

    Nun muss ich ja im Update-script einen Loop haben, damit ich immer nur den einen Datensatz aktualisiere.
    Ich habe auch eine ID von der Adresse. Darum habe ich folgendes versucht:

    update adressen
    set Name= (
    select SUBSTRING(Name, 6,30)
    FROM adressen a
    WHERE a.Name like 'Herr%'
    )
    where a.adress_id = adress_id
    COMMIT

    Fehler: "The multi-part identifier "a.adress_id" could not be bound".
    Ich vermute, ich muss einen Loop bauen, aber auch meine Cursor-Versuche misslingen...
    Für irgend jemanden von Euch ist das sicher ein totales Peanut-Problem und rasch gelöst...

  2. #2
    Stammgast
    Registriert seit
    26.02.2003
    Beiträge
    4.857

    Standard

    Ich vermute mal du denkst da gerade nur zu kompliziert. Es bedarf keines subselects.

    Code SQL:
    UPDATE adressen
       SET Name = SUBSTRING(Name, 6,30)  
     WHERE Name LIKE 'Herr%'

    Edit : deinen like solltest du aber nochmal checken ob es nicht sinnvoll wäre auf auf das Leerzeichen nach dem Herr zu prüfen. Sonst heißt z.B. nachher ein potentieller "Herrmann" nur noch "nn".

    Edit 2: Dein Gedankengang mit einer "Loop" ist übrigens nicht hilfreich und vielleicht Teil eines Vorstellungsproblem. Sql beschreibt KEINEN Algorithmus sondern ist eine Beschreibung des gewünschten Ergebnisses unabhängig vom Algorithmus wie das Ergebnis ermitttelt wird. Wenn man beim erstellen eines Sql Statements ~algorithmisch~ denkt stellt man sich üblicherweise nur ein Bein.
    Geändert von Ralf Jansen (20.12.2017 um 20:06 Uhr)

  3. #3
    Neuer Benutzer
    Registriert seit
    29.11.2017
    Beiträge
    4

    Standard

    Das war eine super Erklärung.
    Danke vielmals!

 

 

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •