Google で答えを見つけられない理由の大部分は、自分の問題を説明する正しい用語を知らないためだと確信しています。
私は次の形をよく知っています。
UPDATE Table t
SET t.description = Concat(ot.text, ' text')
FROM Table
INNER JOIN Other_Table ot ON t.id = ot.id
WHERE conditions;
私が達成しようとしているのは、次のようなものです。
UPDATE Table t
SET t.description = Concat(item, ' text')
FROM t
INNER JOIN (SELECT item FROM ('list', 'of', 'items'))
WHERE conditions;
言い換えれば、「匿名テーブル」、またはテーブルに格納するのではなく、クエリで指定された明示的な文字列のリストがあり、それらを一度に1つずつ選択して、文字列リテラルと連結し、更新する必要があります行。
製品情報のテーブルがあるとします。この表を更新して、「説明」列に「この商品はカラーです!」が含まれるようにします。私は次のようなものを探しています:
UPDATE Products p
SET p.desc = Concat('This product is ', color, '!')
FROM p
INNER JOIN (SELECT color FROM ('blue', 'red', 'green'))
WHERE p.sku in (111, 112, 113);
Access 2010 を使用しており、SQL Server 2008 DB に接続しています。