【问题标题】:Updating one field with the same value based on the ID of another field根据另一字段的 ID 更新具有相同值的字段
【发布时间】:2021-05-08 09:53:58
【问题描述】:

我正在使用的表具有以下类型的数据:

Emp_ID Name State
1112 joe CA
1112 bob Null
1112 lisa Null

我想要做的是让其中一条记录在“状态”字段中具有值(如上表中的“CA”),并且具有相同 Emp_ID 的其他记录为 Null,它们会被“CA”值替换,所以它看起来像这样:

Emp_ID Name State
1112 joe CA
1112 bob CA
1112 lisa CA

所以 IF Emp_ID 在 State 字段中的值不是 NULL 如果 Emp_ID 与具有状态值的相同,则在 State 字段中的状态值。

我的大部分研究都指向 DML 命令,例如更新问题集,但我无权更改表数据而不解决我要解决的问题的具体细节。

寻找有关我如何可能解决此问题的方向。

【问题讨论】:

  • 您的研究向您展示了什么?你试过什么?请向我们展示您的尝试。
  • @DaleK 我知道展示自己的尝试是一种礼仪,但我真的没有接近我想要的结果。我的尝试要么以错误告终,要么根本没有安装任何可以帮助任何希望帮助这篇文章的人的东西。我不一定要寻找答案,方向也可以。我已确保在主帖中说明这一点
  • 不幸的是,这不是本网站的工作方式 - 它旨在帮助解决遇到的特定技术问题,而不是提供更一般的建议。也就是说,您有一个未回复的答案。

标签: sql sql-server tsql sql-update


【解决方案1】:

使用可更新的 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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多