SQL - 使用内更新记录加入
问题描述:
我的工作系统,在这里我要更新一个字段dupstat基于4列即CNAME,FNAME,MNAME,DOB重复的记录。此外,我必须检查是否资格列包含值“否”。我有以下查询,找出重复的记录:SQL - 使用内更新记录加入
select o.cname, o.fname, o.CRollNo, o.Coll_Code, o.mname, o.dob, oc.dupeCount, o.Eligible, o.dupstat
from REGN_Temp o
inner join (
SELECT cname, COUNT(*) AS dupeCount, FName, mname, dob
FROM REGN_Temp
GROUP BY cname, FName, mname,dob
HAVING COUNT(*) > 1
) oc on o.cname = oc.cname and o.fname = oc.FName and o.mname = oc.mname and o.dob=oc.dob and o.Eligible='No' order by cname, fname
现在我想更新列“dupstat = Y”所有这些都是重复的记录,并资格 =“NO”
答
可以UPDATE
与JOIN
直接,只需使用UPDATE
代替SELECT
其次SET
这样的:
UPDATE o
SET o.dupstat='Y'
from REGN_Temp o
inner join
(
SELECT cname, COUNT(*) AS dupeCount, FName, mname, dob
FROM REGN_Temp
GROUP BY cname, FName, mname,dob
HAVING COUNT(*) > 1
) oc on o.cname = oc.cname
and o.fname = oc.FName
and o.mname = oc.mname
and o.dob=oc.dob
and o.Eligible='No'