將數據庫中,表OMRC,FirmName字段,所有重復數據,后面都加字符1 
update  omrc  set  FirmName=FirmName+’1’  where FirmName  in (select  FirmName  from omrc  group  by  FirmName   having  count(FirmName) > 1)  and FirmCode not in (select min(FirmCode) from  omrc  group by FirmName  having count(FirmName )>1)
當然加其它字符也可,用單引號括起來就是
重復超過2次以上的,以查詢最多的10次為例,依次分別追加序數改名,如下
update  omrc  set  FirmName=FirmName+''10'' where FirmName  in (select  FirmName  from omrc  group  by  FirmName   having  count(FirmName) =10) and FirmCode  in (select max(FirmCode) from  omrc  group by FirmName  having count(FirmName )=10) update  omrc  set  FirmName=FirmName+''9'' where FirmName  in (select  FirmName  from omrc  group  by  FirmName   having  count(FirmName) =9) and FirmCode  in (select max(FirmCode) from  omrc  group by FirmName  having count(FirmName )=9) ...(876543依次查詢追加) update  omrc  set  FirmName=FirmName+''2'' where FirmName  in (select  FirmName  from omrc  group  by  FirmName   having  count(FirmName) =2) and FirmCode  in (select max(FirmCode) from  omrc  group by FirmName  having count(FirmName )=2)
第10個名稱后追加10,第9個名稱后追加9,依次追加,直到沒有重復。
列出OMRC中制造商FirmName中重復數據,并按照序號排列  SELECT ROW_NUMBER() OVER(PARTITION BY FirmCode ORDER BY FirmCode FirmName) as NUM,FirmName FROM OMRC  where FirmName  in (select  FirmName  from omrc  group  by  FirmName   having  count(FirmName) > 1)  and FirmCode not in (select min(FirmCode) from  omrc  group by FirmName  having count(FirmName )>1)
注意運算符、引號等等都是半角,都是一個單引號,如‘9’。出現多個是編輯器問題,每次保存都會自動加一個,如''''''9''''''。
其中
SELECT ROW_NUMBER() OVER(PARTITION BY 重復的字段 ORDER BY 排序字段) AS NUM,重復的字段 FROM 表 重復的數據NUM會按照1、2、3這樣排序,不重復的數據NUM為1
|