0

同じ人の複数のエントリを持つ従業員テーブルがあります。SIN 番号を使用して、同一人物であるかどうかを判断できます。

例:

Id  Name    SIN
1   John Smith  1234
2   John Smith  1234
3   Jess Jones  4321

このテーブルの全員を新しいテーブルにコピーできるようにしたいです。テーブルに複数回存在するユーザーに固有の新しい列 (UserKey [GUID]) を作成したいと考えています。SIN 番号の代わりに、この新しい UserKey [GUID] を使用したいと考えています。

Example:
Id  Name        UserKey (Guid)
1   John Smith  1234DFKJ2328LJFD
2   John Smith  1234DFKJ2328LJFD
3   Jess Jones  9543SLDFJ28EKJFF

このクエリにアプローチする方法がわかりません。どんな助けでも素晴らしいでしょう。

MS SQL Server 2008 を使用しています。

ありがとう。

4

1 に答える 1

3

SINを新しいGUIDにマッピングして、一時テーブルを作成するだけです。次に、元のテーブルをマッピング テーブルと結合し、そこから新しいテーブルを作成できます。

# Create a table called #temp with the mappings SID => new GUID
SELECT SIN, newid() UserKey INTO #temp FROM (SELECT DISTINCT SIN FROM Table1) a

# ...and join that and the original table to a new table.
SELECT id, name, userkey
INTO NewTable
FROM Table1 t1
JOIN #temp t2
ON t1.SIN = t2.SIN

ここでSQLFiddle 。

于 2012-10-09T18:07:33.940 に答える