我有一个这样的表(Access Version 2013)
Block SAP SAG BAP BAG
600400 1 3
600401 1 3
600402
600403 1 3 2 4
600404 1 3
600405 3 4
600406 1 4
600407 1 2 1 3
600408 4 5
600409 1 1 3 1
600410 1 5 1 3
我想像下面这样更新表格,基本上我想空(SAP& SAG = NULL)if(SAP = 1 AND SAG = 3),这个我可以轻松实现,问题是我想要(BAP& BAG = NULL)如果(BAP = 1 AND BAG = 3)同时不影响SAP和SAG,我尝试了各种方法,但最终得到了不寻常的结果
Block SAP SAG BAP BAG
600400
600401
600402
600403 2 4
600404
600405 3 4
600406 1 4
600407 1 2
600408 4 5
600409 1 1 3 1
600410 1 5
是否可以通过单个查询(或)实现我需要使用两个不同的更新查询?有什么建议吗?
答案 0 :(得分:1)
您需要两个查询,因为它们会影响不同(但重叠)的行集。
它既简单又易读。你为什么不想使用两个查询?
UPDATE foo
SET SAP = NULL, SAG = NULL
WHERE SAP = 1 AND SAG = 3;
UPDATE foo
SET BAP = NULL, BAG = NULL
WHERE BAP = 1 AND BAG = 3;
答案 1 :(得分:0)
如果您不需要修改第一个表格,那么使用访问功能更难以选择您不想要的项目。
SELECT Iif(Sap<>" 1" AND Sag<>" 3&#34 ;; Sap,"")AS SAP,Iif(Sap< >" 1"和Sag<>" 3&#34 ;; Sag,"")AS SAG,Iif(Bap<>" 1&# 34; AND Bag<>" 3&#34 ;; Bap,"")AS BAP,Iif(Bap" 1" AND Bag<>& #34; 3&#34 ;; Bag,"")AS BAG FROM Table;