tlberlus
Goto Top

SQL Update-Befehl mit Zeichenketten

Hi,

mein SQL ist etwas eingerostet und finde dazu nichts hilfreiches im Web.

SQL-Server 2008 R2;

Ist-Zustand:

Datenbank-Spalte mit den Werten
123
321
213

Soll-Zustand:
Abhängig vom Primär-Schlüssel sollen daraus folgende Werte werden:
Intern_123
321
Intern_213

Theoretisch müsste ich den Update-Befehl dafür in eine Art Schleife laufen lassen, bin mir allerdings nicht sicher, wie ich das aufbauen muss.

Grüße,

Tiberius

Content-ID: 299113

Url: https://administrator.de/contentid/299113

Ausgedruckt am: 21.11.2024 um 23:11 Uhr

Biber
Biber 14.03.2016 um 17:02:46 Uhr
Goto Top
Moin TIBERIUS,

bei allem Verständnis für deine Datenschutzbedenken im Interesse schutzloser Kunden:
Bitte versuche die Aufgabenstellung ein klitzekleines bisschen zu konkretisieren.

Aus "Datenbankspalte mit den Werten" und "Abhängig vom Primär-Schlüssel sollen daraus folgende Werte werden" kann niemand eine UPDATE-Anweisung ableiten.

Was genau ist denn die Abhängigkeit von Primarschlüssel?
Und wenn es eine Abhängigkeit gibt, dann ist doch diese Information redundant.
Bist du sicher, dass du ein UPDATE in den Daten willst oder brauchst du nur eine Leichter-menschenlesbarere-Anzeige in einem View?

Grüße
Biber
TlBERlUS
TlBERlUS 14.03.2016 um 19:41:38 Uhr
Goto Top
Nabend Biber,

Zitat von @Biber:
Aus "Datenbankspalte mit den Werten" und "Abhängig vom Primär-Schlüssel sollen daraus folgende Werte werden" kann niemand eine UPDATE-Anweisung ableiten.
Soll auch keiner. Der Part ist nur eine stumpfe WHERE-Klausel, die ich noch selber schaffe face-smile . Hatte das nur der Vollständigkeit erwähnt, obwohl das im Nachhinein eher eine überflüssige Infornmation war. Mea Culpa.

Jup, ich bin mir sicher, dass ich keine View brauche.
126919
126919 14.03.2016 um 20:48:01 Uhr
Goto Top
Hi,
ich versteh jetzt zwar nicht woher das Intern kommen soll, die Beschreibung ist leider nicht eindeutig genug , aber vermutlich suchst du etwas nach dieser Art:
Pseudo-Code
UPDATE Tabelle1
  JOIN Tabelle2 t2 ON t2.c_id = Tabelle1.c_id
   SET spalte = t2.SpalteX
Gruß fk
TlBERlUS
TlBERlUS 15.03.2016 um 08:18:46 Uhr
Goto Top
Zitat von @126919:

Hi,
ich versteh jetzt zwar nicht woher das Intern kommen soll, die Beschreibung ist leider nicht eindeutig genug , aber vermutlich suchst du etwas nach dieser Art:

Guten Morgen,

das "Intern_" ist ein festgelegter String, der aus keiner Datenbank/Tabelle kommt.
126919
Lösung 126919 15.03.2016 aktualisiert um 08:35:32 Uhr
Goto Top
Wo ist dann das Problem? Mit concat() kannst du zwei Strings Zusammenfügen deinen festen und den Wert der aktuellen Spalte.

UPDATE Tabelle1 SET SpalteX = CONCAT('intern_', SpalteX)   
Willst du es auf bestimmte Einträge eingrenzen brauchst du natürlich noch eine where clause dazu.

Versuch das ganze doch mal vernünftig im Zusammenhang zu beschreiben und nicht nur immer Brocken davon.
TlBERlUS
TlBERlUS 15.03.2016 um 08:45:17 Uhr
Goto Top
Zitat von @126919:

Wo ist dann das Problem? Mit concat() kannst du zwei Strings Zusammenfügen deinen festen und den Wert der aktuellen Spalte.

> UPDATE Tabelle1 SET SpalteX = CONCAT('intern_', SpalteX)   
> 
Genau das brauchte ich.
Versuch das ganze doch mal vernünftig im Zusammenhang zu beschreiben und nicht nur immer Brocken davon.
Ich war der Meinung, dass ich das getan hätte, aber gut...