【发布时间】:2022-01-16 10:17:22
【问题描述】:
表1
| ID | Code | Decision |
|---|---|---|
| 1 | TK01 | Yes |
| 2 | OP01 | --- |
| 3 | TK01 | --- |
| 4 | MK02 | Yes |
| 5 | MK02 | --- |
大家好, 如果在 Code 列中发现重复项,什么 SQL 查询将更新 Decision 列。
换句话说: 带有 Code 的 ID 1 TK01 为“是”,因此 ID 3 应在 Decision 列中更新为“是”值。
与 ID 5 相同,因为它与 ID 4 的代码匹配,并且 ID 4 在 Decision 列中具有“是”值。
我已经在 Access(下面的代码)中创建了它,但是请在 t-sql 或 mysql 中创建它
UPDATE Table1 t1 INNER JOIN Table1 t2
ON t1.Code = t2.Code
SET t1.Decision = t2.Decision
【问题讨论】:
-
这已经是可以在 MSSQL 或 MySQL 中工作的有效 SQL。其中没有任何特定于访问的内容。
-
@Peter 那
UPDATESQL 在 SQL Server 中不起作用。 SQL Server 对此有不同的UPDATE ... SET ... FROM语法。 -
该语法肯定会失败,尽管即使在 Access 中,仅在 code 上的自连接会为 decision 的每个值复制行,所以如果两行都设置为“是”或“---”,那将是任意的