SQL-запрос для обновления столбца на основе значений других столбцов в той же таблице

Хорошо, это сложно сформулировать, поэтому приступим ...

Я использую MS SQL Server 2008 R2. У меня есть временная таблица, в которой, скажем, есть два уже заполненных столбца. Есть третий пустой столбец, который я хочу заполнить на основе значений первых двух столбцов. Я хочу создать guid (используя NEWUID ()) для каждой совпадающей комбинации col1 и col2. Вот наглядный пример:

Допустим, у меня есть временная таблица, которая изначально выглядит так:

Name    Activity    SpecialId
James   Running     
James   Running
James   Walking
John    Running
John    Running
John    Walking

Я хочу, чтобы она обновлялась новыми GUID, чтобы она выглядела так:

Name    Activity    SpecialId
James   Running     SOMEFAKEGUID_1
James   Running     SOMEFAKEGUID_1
James   Walking     SOMEFAKEGUID_2
John    Running     SOMEFAKEGUID_3
John    Running     SOMEFAKEGUID_3
John    Walking     SOMEFAKEGUID_4

Обратите внимание, как новый GUID создается для каждой подходящей пары. Таким образом, комбинация Джеймс / Бег имеет один и тот же GUID для всех комбинаций Джеймс / Бег ... и Джон / Бег также имеет тот же GUID для комбинаций Джон / Бег, но не тот же GUID, что и комбинации Джеймс / Бег.

Я постарался сделать это как можно более ясным, но, надеюсь, это не так ясно, как грязь!

Может ли кто-нибудь показать мне, как будет выглядеть SQL-запрос, чтобы обновить эту временную таблицу с правильными идентификаторами GUID?

Заранее спасибо.

Райан

5
задан Adam Wenger 1 December 2011 в 22:37
поделиться