如果其他值相同,则将ID更改为相同的ID

时间:2016-03-21 01:24:33

标签: sql sql-server

帮助撰写查询

**ID DOB**
1   1/1/2000
2   1/1/2000
3   2/2/1999
4   2/2/1999

如果DOB与制造ID相同,则为最低值

所以结果的一个例子是

1   1/1/2000
1   1/1/2000
3   2/2/1999
3   2/2/1999

注意ID现在是相同的

如果我没有充分解释,请问我任何问题

1 个答案:

答案 0 :(得分:0)

您可以使用ANSI SQL窗口函数min()执行此操作:

select min(id) over (partition by dob) as id, dob
from t;

编辑:

我不太确定你为什么要将行设置为完全重复,但你可以用类似的方式做到这一点:

with toupdate as (
      select t.*, min(id) over (partition by dob) as new_id
      from t
     )
update toupdate
    set id = new_id
    where id <> new_id;