Wie ist es in SQL möglich, den Wert eines Feldes mit einem Substring dieses Wertes zu ersetzen.
In meiner Datenbank stehen zur Zeit für Farbangaben Werte wie 0x123456 oder 0xFFFFFF in der Spalte Color. Ich würde daraus gerne 12345 und FFFFFF machen.
Folgender Versuch hat nicht funktioniert:
create table temp(id integer, newcolor varchar(6), color varchar(8));
INSERT INTO temp SELECT id, substr(color, 3, 6) AS newcolor, color FROM ingredient_juice;
UPDATE ingredient_juice SET color = (SELECT newcolor FROM temp WHERE ingredient_juice.id = temp.id);
Ich nehme mal an, dass die WHERE-Klausel des Updates das Problem ist, weiß aber keinen besseren Weg.
Habt Ihr bessere Ideen - evtl. auch ohne temporäre Tabelle?
Ach ja, ich verwende SQLite - es steht also kein TSQL oder so zur Verfügung.
Sarkusmus ist, wenn nichts mehr hilft, außer Lachen.
Edit: Sorry war zu schnell mit der Antwort hatte gedacht TSQL
Nimm direkt beim Update REPLACE
http://msdn2.microsoft.com/de-de/library/ms186862.aspx
UPDATE ingredient_juice SET color = Replace(....)
Gruß Jörg
Hallo Joerg,
Dein Beitrag hat mir trotzdem sehr geholfen, da man das substr() von SQLite genauso verwenden kann, wie ich festgestellt habe. Damit klappt's:
UPDATE ingredient_juice SET color = substr(color, 3, 6);
Gruß Flo
Sarkusmus ist, wenn nichts mehr hilft, außer Lachen.