0

我有一个员工表,其中包含同一个人的多个条目。使用他们的 SIN 号码,您可以确定他们是否是同一个人。

例子:

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

我希望能够将这个表中的每个人都复制到一个新表中。我想创建一个新列(UserKey [GUID]),该列对于多次出现在表中的用户来说是唯一的。我想使用这个新的 UserKey [GUID] 而不是 SIN 号码。

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 回答