Sql access中的简单更新查询
这段代码是我在查询设计中输入条件得到的。 似乎只有当claim_status、state_Field和disease_category都是空(空)单元格时,才会运行此操作。我想运行一个查询,在Claim_Status下的空单元格中填充“UNKNOWN”,在State_field下的空单元格中填充“XX”,等等。条件不应该包括“AND”,这意味着它们基本上是分开运行的 有人能帮我吗Sql access中的简单更新查询,sql,ms-access,Sql,Ms Access,这段代码是我在查询设计中输入条件得到的。 似乎只有当claim_status、state_Field和disease_category都是空(空)单元格时,才会运行此操作。我想运行一个查询,在Claim_Status下的空单元格中填充“UNKNOWN”,在State_field下的空单元格中填充“XX”,等等。条件不应该包括“AND”,这意味着它们基本上是分开运行的 有人能帮我吗 提前感谢。如果这三个字段都为空,则此查询只会更新索赔状态、状态和疾病类别。例如,假设状态_归档为空,但疾病_类别和索
提前感谢。如果这三个字段都
为空,则此查询只会更新索赔状态
、状态
和疾病类别
。例如,假设状态_归档
为空
,但疾病_类别
和索赔状态
已填充数据。在这种情况下,您的更新不会更新State\u field
,因为并非所有三列都是NULL
。您应该使用三个单独的查询来确保更新所有NULL
列,而不管是否填充了其他两列:
UPDATE _DATA SET
[_DATA].Claim_Status = "UNKNOWN",
[_DATA].State_Filed = "XX",
[_DATA].Disease_Category = "UNKNOWN"
WHERE
((([_DATA].Claim_Status) Is Null) AND
(([_DATA].State_Filed) Is Null) AND
(([_DATA].Disease_Category) Is Null));
此外,我个人不会更新NULL
字段以包含数据。如果没有这些列的数据,则没有这些数据。例如,如果您希望NULL
状态显示为XX
而不是NULL
,则执行此操作的位置是在您的表示层或报告中,您可以注销此数据,而不是数据库本身。您可以使用Nz:
UPDATE _DATA
SET Claim_Status = 'UNKNOWN'
WHERE Claim_Status IS NULL
UPDATE _DATA
SET State_Filed = 'XX'
WHERE State_Filed IS NULL
UPDATE _DATA
SET Disease_Category = 'UNKNOWN'
WHERE Disease_Category IS NULL
考虑3个简单的查询---每个要更新的字段之一。以下是第一个问题:UPDATE\u数据集Claim\u Status=“UNKNOWN”其中Claim\u Status为空
这是否意味着我必须进行3次查询才能进行此更改?感谢您的输入。有没有可能在一个更新查询中使用那一大块行,这样它就可以同时执行所有操作?我不这么认为,每个update
都是一个单独的事务,必须自己运行。有关冗长的解决方法,请参见此:。现在,如果值NULL
为空,则可以使用case语句将其更新为默认值;如果值不是空,则可以将其设置回自身,但这将涉及数据库中每一行的每一列。我真的不建议这样做。只有当状态、状态和疾病都为空时,才会更改值吗?那么您将使用and,而不是OR。
UPDATE
_DATA
SET
Claim_Status = Nz(Claim_Status, "UNKNOWN"),
State_Filed = Nz(State_Filed, "XX"),
Disease_Category = Nz(Disease_Category, "UNKNOWN")
WHERE
Claim_Status Is Null
OR
State_Filed Is Null
OR
Disease_Category Is Null;