2

申し訳ありませんが、それがくだらないタイトルであることはわかっていますが、問題を説明するより簡潔な方法は思いつきませんでした.

電話番号を含む (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 以上のレコードがあります)。誰でも助けることができますか?

誰かがシナリオをいじるのに役立つ場合は、フィドルを作成しました。

4

2 に答える 2