Ich arbeite mit SQL Server 2008. Ich habe 2 Tabellen hier.Stored Procedure für Referenztabelle Daten übereinstimmen und einfügen
shades_table color_name category location Aqua Blue House A Denim Blue House B Azure Blue House B Zaffre Blue House A Scarlet Red House C Ruby Red House D Chili Red House D Crimson Red House A objects_table object_name color_cat location2 Super Aqua shoes Null Null Azure wallet Null Null Awesome Scarlet chair Null Null Ruby socks Null Null Sparkly Denim chalk Null Null Chili paper Null Null Zaffre vase Null Null Sharp Crimson eraser Null Null Crimson watch Null Null Excellent Scarlet bucket Null
Ich habe eine Referenztabelle namens shades_table. Eine Spalte enthält Farbname und die andere Spalte enthält die Kategorie der Farbe.
Ich arbeite an der objects_table. Die Spalte object_name enthält den Farbnamen. Ich möchte, dass eine Prozedur/ein Programm die Farbnamen automatisch mit dem Objektnamen abgleicht und anschließend die Nullwerte in der Spalte color_cat aktualisiert.
Meine aktuelle Methode besteht darin, die shades_table in eine CSV-Datei zu exportieren. Dann habe ich ein Java-Programm, das die CSV-Datei liest und Ausgabe in eine SQL-Datei vom Server ausgeführt werden:
UPDATE objects_table SET color_cat='Blue', location2 = 'House A' WHERE object_name LIKE '%Aqua%' AND color_cat IS NULL UPDATE objects_table SET color_cat='Blue', location2 = 'House B' WHERE object_name LIKE '%Denim%' AND color_cat IS NULL UPDATE objects_table SET color_cat='Blue', location2 = 'House B' WHERE object_name LIKE '%Azure%' AND color_cat IS NULL etc...
Diese Methode funktioniert, aber es ist dumm, umständlich. Ich weiß einfach nicht, wie man die SQL-Anweisungen schreibt, die tun können, was ich will.
Update: Ich habe eine zusätzliche Spalte hinzugefügt, die ich auch anpassen möchte (siehe meine Java-Programmausgabe). UPDATE-Anweisung mit 2 SET funktioniert nicht. Beispiel
update o set o.color_cat = s.category, set o.location2 = s.location ...
nicht funktioniert, gibt „Falsche Syntax nahe dem Schlüsselwort 'gesetzt'.
ok, ich wusste nicht, die korrekte Syntax ein Satz a.color_cat = b.category aktualisiert werden sollte, a.location2 = b.location .... Ich sollte SET das 2. Mal nicht eingeben. Danke, Unnikrishnan R, du warst der Erste, der antwortete. –