Генерация уникальных 9-значных значений - PullRequest
0 голосов
/ 02 сентября 2011

У меня есть таблица, как показано ниже:

Group           
---------------------------     
Id  Num         Name    Age
---------------------------
1   424000000   Damine  22
2   324000000   Arshley 18
3   276000000   Tita    20
4   424000000   Helen   21
5   424000000   Mary    19
6   324000000   Kathe   20
7   324000000   Mark    18
8   276000000   Phill   22

Я хочу сделать Num col уникальным, поэтому мне нужно сгенерировать 9-значные числовые случайные значения для дубликатов.

пожалуйста, помогите, спасибо

Ответы [ 3 ]

3 голосов
/ 02 сентября 2011

Вы устанавливаете столбец num как поле идентификатора с начальным числом, например 100000000, или просто устанавливаете в поле num идентификатор и печатаете его значение с помощью перегруженного метода tostring

Обновление: выполнение этого (добавление столбца идентификаторов) через Management Studio приведет к удалению и воссозданию таблицы, что не рекомендуется для очень очень большой таблицы

1 голос
/ 02 сентября 2011
WITH u AS
(
 SELECT *, new_num = ROW_NUMBER() 
  OVER (PARTITION BY Num ORDER BY Id)
  FROM dbo.Group
)
UPDATE u SET Num += new_num - 1
FROM u
WHERE new_num > 1;
0 голосов
/ 02 сентября 2011

Не проверено ... но что-то в этом роде ...

SELECT 
    CONVERT(VARCHAR(9), RIGHT(NEWID(), 9)) AS [MyID] 
WHERE 
    LEFT([MyID], 1) NOT LIKE '0';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...