SQL 根据查询结果更新查询
SQL Update query on query result
我有 2 个 table 喜欢:
Table 1
SID Sdefinition CValue
4057 s1 32
4058 s2
4059 s3 6
4060 s4
Mapping_tbl
SID SINID ECFID SID-SINID
4057 1099 4027e 1099_4057
4058 1099 4027e 1099_4058
4059 1121 4003e 1121_4059
4060 1121 4003e 1121_4060
查询 1
SELECT Mapping_tbl.SID, Table1.Sdefinition, Table1.CValue
FROM Table1 INNER JOIN Mapping_tbl ON Table1.SID= Mapping_tbl.SID;
查询 1(结果)
SID Sdefinition CValue
4057 s1 32
4058 s2
4059 s3 6
4060 s4
我有一种情况想更新查询 table (Query1) 即
如果 field(Cvalue) 包含 null,则将其设置为 0。我正在使用像
这样的更新查询
Update Query1 Set CValue = 0 Where CValue Is Null;
查询 table (query1) 得到更新并将 Cvalue 设置为 0,如果它
包含空值,并且它还更新(设置 0)Table1,其中 Cvalues 是
无效的。
如何避免更新 Table1?任何建议。
您似乎不想更改存储在 table 中的值,并且希望在 CValue 为 Null 时查询显示零。因此,您可以让查询仅在其结果集中将 Null 替换为零(不更改 table 中的值)...
SELECT m.SID, t.Sdefinition, IIf(t.CValue Is Null, 0, t.CValue) AS [CValue]
FROM Table1 AS t INNER JOIN Mapping_tbl AS m
ON t.SID= m.SID;
对于 Access 会话中的查询,您可以使用 VBA Nz()
函数...
SELECT m.SID, t.Sdefinition, Nz(t.CValue Is Null, 0) AS [CValue]
FROM Table1 AS t INNER JOIN Mapping_tbl AS m
ON t.SID= m.SID;
我为 table 名称使用了别名。但是您不需要它们来进行 Null 替换。我只是更喜欢别名。
我有 2 个 table 喜欢:
Table 1
SID Sdefinition CValue
4057 s1 32
4058 s2
4059 s3 6
4060 s4
Mapping_tbl
SID SINID ECFID SID-SINID
4057 1099 4027e 1099_4057
4058 1099 4027e 1099_4058
4059 1121 4003e 1121_4059
4060 1121 4003e 1121_4060
查询 1
SELECT Mapping_tbl.SID, Table1.Sdefinition, Table1.CValue
FROM Table1 INNER JOIN Mapping_tbl ON Table1.SID= Mapping_tbl.SID;
查询 1(结果)
SID Sdefinition CValue
4057 s1 32
4058 s2
4059 s3 6
4060 s4
我有一种情况想更新查询 table (Query1) 即 如果 field(Cvalue) 包含 null,则将其设置为 0。我正在使用像
这样的更新查询 Update Query1 Set CValue = 0 Where CValue Is Null;
查询 table (query1) 得到更新并将 Cvalue 设置为 0,如果它 包含空值,并且它还更新(设置 0)Table1,其中 Cvalues 是 无效的。
如何避免更新 Table1?任何建议。
您似乎不想更改存储在 table 中的值,并且希望在 CValue 为 Null 时查询显示零。因此,您可以让查询仅在其结果集中将 Null 替换为零(不更改 table 中的值)...
SELECT m.SID, t.Sdefinition, IIf(t.CValue Is Null, 0, t.CValue) AS [CValue]
FROM Table1 AS t INNER JOIN Mapping_tbl AS m
ON t.SID= m.SID;
对于 Access 会话中的查询,您可以使用 VBA Nz()
函数...
SELECT m.SID, t.Sdefinition, Nz(t.CValue Is Null, 0) AS [CValue]
FROM Table1 AS t INNER JOIN Mapping_tbl AS m
ON t.SID= m.SID;
我为 table 名称使用了别名。但是您不需要它们来进行 Null 替换。我只是更喜欢别名。