根据另一个字段的 ID 使用相同的值更新一个字段
Updating one field with the same value based on the ID of another field
我正在处理的 table 具有以下类型的数据:
Emp_ID
Name
State
1112
joe
CA
1112
bob
Null
1112
lisa
Null
我想做的是让其中一条记录在 'State' 字段中有值,例如上面 table 中的 'CA',和其他具有相同 Emp_ID 的记录为 Null,它们将被替换为 'CA' 值,因此它看起来像这样:
Emp_ID
Name
State
1112
joe
CA
1112
bob
CA
1112
lisa
CA
所以 IF Emp_ID 在州字段中有一个不为空的值
THEN 如果 Emp_ID 与具有状态值的状态相同,则状态字段中的状态值。
我的大部分研究都将我指向 DML 命令,例如更新问题集,但我无权更改 table 数据而不解决我要解决的问题的具体细节。
正在寻找有关如何可能解决此问题的方向。
使用可更新的 CTE 在我脑海中浮现:
WITH cte AS (
SELECT *, MAX(State) OVER (PARTITION BY Emp_ID) AS MaxState
FROM yourTable
)
UPDATE cte
SET State = MaxState
WHERE State IS NULL;
我正在处理的 table 具有以下类型的数据:
Emp_ID | Name | State |
---|---|---|
1112 | joe | CA |
1112 | bob | Null |
1112 | lisa | Null |
我想做的是让其中一条记录在 'State' 字段中有值,例如上面 table 中的 'CA',和其他具有相同 Emp_ID 的记录为 Null,它们将被替换为 'CA' 值,因此它看起来像这样:
Emp_ID | Name | State |
---|---|---|
1112 | joe | CA |
1112 | bob | CA |
1112 | lisa | CA |
所以 IF Emp_ID 在州字段中有一个不为空的值 THEN 如果 Emp_ID 与具有状态值的状态相同,则状态字段中的状态值。
我的大部分研究都将我指向 DML 命令,例如更新问题集,但我无权更改 table 数据而不解决我要解决的问题的具体细节。
正在寻找有关如何可能解决此问题的方向。
使用可更新的 CTE 在我脑海中浮现:
WITH cte AS (
SELECT *, MAX(State) OVER (PARTITION BY Emp_ID) AS MaxState
FROM yourTable
)
UPDATE cte
SET State = MaxState
WHERE State IS NULL;