title image


Smiley Re: Mehrfaches Ersetzen mit Daten aus Hilfstabelle
Servus Andreas,



gleich vorweg, die Syntax wirst nochmal selbst überprüfen müssen, meine letzte Abfrage dieser Art ist ein paar Monate her, hab auch nichts da zum testen. Aber mal sehen, wie weit wir kommen.



Mal zum ersten Punkt:



UPDATE haupttabelle

Set Feld1 = neu

From hilfstabelle

Where hlfstabelle.alt = haupttabelle.Feld1



Sieh zu dieser Anweisung nochmal in der SQL-Hilfe nach, unter "Update From" müsstest fündig werden.



Was die Erweiterungen anbelangt, in dem Fall würde ich das ganze einfach über eine Schleife oder Ähnliches machen. Verwende am besten einen Cursor dafür (siehe SQL-Hilfe unter "Create Cursor"). Dann kannst Datensatz für Datensatz der hilfstabelle abarbeiten und die Operationen und Vergleich edurchführen. Ich versuch mal, ein Grundgerüst zu basteln.



declare @alt varchar(100), @neu varchar(100)



declare @myValues Cursor as

Select alt, neu From hilfstabelle

WHILE @@FETCH_STATUS = 0

BEGIN

Fetch next into @alt, @neu



-- Erste Aufgabe: String aus Hilfstabelle in Feld1 suchen

Update haupttabelle

Set Feld1 = @neu

Where Feld1 = @alt



-- Erste Erweiterung: String aus Hilfstabelle in Feld2 suchen

Update haupttabelle

Set Feld2 = @neu

Where Feld2 = @alt



END



Was die Teilstrings anbelangt, ich bin nicht sicher ob ich deine Anforderung richtig verstehe, aber ich denke, die Anweisung müsste dann wie folgt aussehen (einfach im Cursor noch mit einbauen):

Update haupttabelle

Set Feld1 = Replace(Feld1, 'alt', @neu)

Where Charindex(@alt, Feld1, 1) > 1



Ansonsten sieh dir mal folgende Funktionen an, die helfen dir dabei sicher weiter:

Substring()

Replace()

Charindex()



Hoffe geholfen zu haben.

Ciao, WolfgangE
An Optimist Is A Person Who Has Not Been Shown All The Facts Yet!

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: