我有2个表,Table1
和Table2
。我需要替换从Table1
引用的Table2
中的一个字符串或一系列字符串(用逗号分隔)。
我对此进行了查询,但是没有运气:
TableNew: Iif(Instr([Table1.ColumnX1],[Table2.ColumnY1],Replace([Table1.ColumnX1],[Table2.ColumnY1],[Table2.ColumnY2]),[Table1.ColumnX1])
我想要实现的目标是这样的,在Table1
ColumnX1
中有:
A,B,C,1,2,3,4,D,E,F,5,6
然后在Table2
中,我有
+----------+-----------+
| ColumnY1 | ColumnY2 |
+----------+-----------+
| A | Z |
| B | Y |
| C | X |
| D | W |
| E | V |
| F | U |
+----------+-----------+
运行该查询后,它将导致
Z,Y,X,1,2,3,4,W,V,U,5,6
我希望它在Table1
中可用的每一行中运行。
谢谢。
答案 0 :(得分:0)
您可以使用以下查询来修改Table1
所保存的值:
update table1 inner join table2 on instr(1, table1.columnx1, table2.columny1) > 0
set table1.columnx1 = replace(table1.columnx1, table2.columny1, table2.columny2)
请注意,上述查询中实现的联接不能由MS Access查询设计器显示,但是,它是有效的SQL,可以由MS Access使用的JET数据库引擎成功执行。