有一批来自设备的数据,每个设备的某些参数必须是唯一,使用这个设备的用户感知才会好。现在就是有些的数据不唯一,重复了,需要将重复的修改成唯一的值,所以需先按一定的规则排序,取一条数据,和下一条数据比对,如果一样,先调出空闲的数据值,取一个更新当前的数据,否则直接取取下一条,一直比对下去,老大们有其他的方法实现么?
考虑建一个唯一设备不包含需处理字段的表,在需处理的表中标记重复的数据。问题是,如果一个设备值被重复了3次,我只需修改2个,有个不需要改,因为修改的值也是有大小的,只能取一定范围内的值,超过了,就会取不到,怎么做?
18-09-21 21:57:02.231 DEBUG [http-nio-8990-exec-85] update OLTVLAN.dbo.ztevlan set newc_vid=? where id=?
| 1 | 2 |
|----------|--------|
| 222 | 356017 |
| 3009 | 356814 |
| 3010 | 356849 |
| 3011 | 355454 |
| 3012 | 355484 |
| 3013 | 356887 |
| 3014 | 356190 |
| 3015 | 356563 |
| 3016 | 355796 |
| 3017 | 355995 |
-- Only display first 10 lines , don't show the remaining record(count=1001)
For example:> "update OLTVLAN.dbo.ztevlan set newc_vid='222 ' where id=356017"
18-09-21 22:00:56.295 DEBUG [http-nio-8990-exec-85] SELECT * FROM oltvlan.dbo.cvlanallgh WHERE cvlan not in (select rtrim(c_VID) from oltvlan.dbo.ztevlan where pon='1-3-5' and WYIP='134.180.112.19' and s_vid='2987' and gh='99') and cvlan like '3%' and len(cvlan)='4' and isdeal is null and gh='99' order by cvlan