Update Anweisung für nur ein Zeichen, der Rest soll bleiben.

Joemichael

Grünschnabel
Halli, hallo,

ich habe schon seit mehreren Stunden darüber gebrütet, wie ich folgendes Problem bei MS SQL 7.0 lösen kann, und zwar habe ich eine Spalte mit Länderkennungen (IDs), die ich als Primary Key definiert habe. Siehe nachfolgendes Beispiel:

DHE40001200455
DBR30001343321
DSH20002020340
DBR23443435122
usw.

Nun möchte ich alle Datenfelder beginnend mit DBR in DBE................ umbenennen, d. h. ich möchte lediglich den Buchstaben R gegen den Buchstaben E austauschen. Das Datenfeld muss ansonsten absolut identisch bleiben.

Ich wäre sehr dankbar, wenn mir irgend jemand bei diesem Problem helfen könnte.

Den den allerbesten Vorjahresgrüßen

Joemichael
 
Hi,

also nicht so einfach da ich nicht mit MS SQL arbeite.
Ich hätte folgende Idee.

Schritt 1: hilfsspalte in der tabelle die du updaten möchtest
Schritt 2: eine temporäre tabelle erstellen die NUR die Zeilen enthält die du updaten möchtest
Schritt 3: mit hilfre der update clausel das update durchführen
Schritt 4: alles was du nicht benötigst wieder löschen

Achtung: Ich habe das auf 1000 Zeichen begrenzt -> substr funktion !!

Hier der Code (ich verwende ORACLE):
PHP:
  -- Ich weiß nicht obs bei MS SQL der richtige Datentyp ist für numerisch
  ------------------------------------------------------------------------
  ALTER TABLE update_table ADD helper NUMBER
  -- hier holst du dir alle Kandidaten
  ------------------------------------
  CREATE TABLE temp_table AS SELECT * FROM update_table WHERE string LIKE 'DBR%' 
  -- Und jetzt das update durchführen
  -----------------------------------
  UPDATE update_table SET string = (SELECT 'DBE' || SubStr(string, 4, 1000) FROM temp_table 
  WHERE update_table.helper =  helper  )
  WHERE string LIKE 'DBR%'

Viele Grüße
 
Zurück