Я работаю с SQL Server 2008. У меня есть 2 таблицы.Сохраненная процедура сопоставления данных справочной таблицы и вставки
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
У меня есть справочная таблица, называемая shades_table. Столбец содержит имя цвета, а другой столбец содержит категорию цвета.
Я работаю над object_table. Столбец object_name содержит имя цвета. Я хотел бы, чтобы процедура/программа автоматически соответствовала именам color_names Object_name, а затем обновляла значения Null в столбце color_cat.
Мой текущий метод заключается в том, чтобы экспортировать shades_table в файл csv. Затем я написал программу Java, которая считывает файл CSV, и вывод в SQL файл, который будет работать на сервере:
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...
Этот метод работает, но это глупо, громоздкое. Я просто не знаю, как писать инструкции SQL, которые могут делать то, что я хочу.
Обновление: Я добавил дополнительный столбец, который я также хочу сопоставить. (Обратитесь к моему выходу программы Java). Операция UPDATE с 2 SET не работает. пример
update o set o.color_cat = s.category, set o.location2 = s.location ...
не работает, дает «Неправильный синтаксис около ключевого слова„установить“.
нормально, я не знаю, правильный синтаксис должен обновить набор a.color_cat = b.category, a.location2 = b.location .... Я не должен набирать SET второй раз. Спасибо, Unnikrishnan R, ты первым ответил. –