我有一张如下表所示的表格:
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位数字随机值。
请帮助,谢谢
答案 0 :(得分:3)
您将num列设置为具有100000000种子的标识字段,或者只是将num字段设置为标识并使用重载的tostring方法打印其值
更新:通过Management Studio执行此操作(添加标识列)将删除并重新创建表,不建议在非常大的表上使用
答案 1 :(得分:1)
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;
答案 2 :(得分:0)
没有经过测试......但是那样......
SELECT
CONVERT(VARCHAR(9), RIGHT(NEWID(), 9)) AS [MyID]
WHERE
LEFT([MyID], 1) NOT LIKE '0';