我相当确定我无法通过 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;
换句话说,我有一个“匿名表”,或者在查询中指定的显式字符串列表,而不是存储在表中,我希望一次选择一个并与一些字符串文字连接并更新一个排。
所以想象一下我有一个产品信息表。我想更新这个表,所以“描述”列包含“这个产品是彩色的!”。我正在寻找类似的东西:
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 数据库。