我目前正在尝试更新包含大量重复行的表,但不包含唯一标识符。我想在每个副本的te_system_ref之前添加减号( - ),但保留原始副本。我有以下查询给出了完整的重复列表(如下所示),但我无法弄清楚如何删除重复项。
当前查询:
result = result.Select(s => string.Format("{0}-aaa", s)).ToList();
所以而不是:
select te_system_ref, te_event, te_Date
from ticket_events
where te_system_ref in (select te_system_ref from ticket_events
where te_event = 'VQ5 hard copy follows'
and te_date between '04/12/17' and '18/06/18 23:59:59'
group by te_system_ref
having count (te_event) > 4)
and te_event = 'VQ5 hard copy follows'
我会得到:
1046338 2018-04-24 07:01:57.000 16210 VQ5 hard copy follows
1046338 2018-04-24 07:01:58.000 16210 VQ5 hard copy follows
1046338 2018-04-25 07:02:49.000 16210 VQ5 hard copy follows
1046338 2018-04-25 07:02:50.000 16210 VQ5 hard copy follows
1064317 2018-03-21 16:21:52.000 16210 VQ5 hard copy follows
1064317 2018-03-27 12:32:16.000 16210 VQ5 hard copy follows
1064317 2018-04-18 07:00:38.000 16210 VQ5 hard copy follows
1064317 2018-04-19 07:00:39.000 16210 VQ5 hard copy follows
1064351 2018-03-21 16:21:47.000 16210 VQ5 hard copy follows
1064351 2018-03-27 12:31:51.000 16210 VQ5 hard copy follows
1064351 2018-04-18 07:01:50.000 16210 VQ5 hard copy follows
1064351 2018-04-19 07:02:03.000 16210 VQ5 hard copy follows
非常感谢任何帮助。
编辑:我已经找到了解决方案,如下所示:
1046338 2018-04-24 07:01:57.000 16210 VQ5 hard copy follows
1064317 2018-03-21 16:21:52.000 16210 VQ5 hard copy follows
1064351 2018-03-21 16:21:47.000 16210 VQ5 hard copy follows
答案 0 :(得分:0)
你不能。
...但不包含唯一标识符......
好吧,在SQL中,具有相同值的所有行都是等效。您无法区分看起来相同的两行,因此您无法仅更新其中一行。
您需要添加某种唯一键来标识每一行。也许使用序列,时间戳或其他东西填充额外的列。如果你有这个,那么你可以开始区分行,你的生活将变得更加容易。