抱歉,我知道这是一个垃圾标题,但我想不出更简洁的方式来描述这个问题。
我有一个包含电话号码的(MSSQL 2008)表:
| CustomerID | Tel1 | Tel2 | Tel3 | Tel4 | Tel5 | Tel6 |
| Cust001 | 01222222 | 012333333 | 07111111 | 07222222 | 01222222 | NULL |
| Cust002 | 07444444 | 015333333 | 07555555 | 07555555 | NULL | NULL |
| Cust003 | 01333333 | 017777777 | 07888888 | 07011111 | 016666666 | 013333 |
我想:
删除所有重复的电话号码
重新排列电话号码,以便以“07”开头的任何内容都是第一个电话号码。如果有多个 07,它们应该在第一个字段中。除此之外的数字顺序并不重要。
因此,例如,经过处理后,表格将如下所示:
| CustomerID | Tel1 | Tel2 | Tel3 | Tel4 | Tel5 | Tel6 |
| Cust001 | 07111111 | 07222222 | 01222222 | 012333333 | NULL | NULL |
| Cust002 | 07444444 | 07555555 | 015333333 | NULL | NULL | NULL |
| Cust003 | 07888888 | 07011111 | 016666666 | 013333 | 01333333 | 017777777 |
我正在努力弄清楚如何有效地实现我的目标(表中有 600,000 多条记录)。任何人都可以帮忙吗?
如果它可以帮助任何人玩这个场景,我已经创建了一个小提琴。