小编典典

将相同的ID分配给SQL Server中的重复项

sql

我想创建一个更新查询,该查询将为表中的值分配增量ID。但是,重复的值应收到相同的ID。

MyTable:

pk  Word   ID  
1   Dummy   null  
2   Dummy   null
3   dummy   null  
4   dummy   null  
5   Hello   null  
6   Hello   null  
7   Test7   null

预期结果:

pk  Word   ID  
1   Dummy   1  
2   Dummy   1  
3   dummy   2  
4   dummy   2  
5   Hello   3  
6   Hello   3  
7   Test7   4

提前致谢!


阅读 167

收藏
2021-04-07

共1个答案

小编典典

您可以使用单词的自动递增ID字段创建一个表。

MySQL:

CREATE TABLE secondTable (
id  int NOT NULL AUTO_INCREMENT,
word  varchar(255) NULL,
PRIMARY KEY (id)
);

MSSQL:

CREATE TABLE [secondTable] (
[id] int NOT NULL IDENTITY(1,1) ,
[word] varchar NULL ,
PRIMARY KEY ([id])
)

之后,您可以在secondTable中插入word的不同值。

INSERT INTO secondTable (word) SELECT distinct word FROM MyTable;

最后,您可以使用分组ID更新表格:

UPDATE MyTable 
SET ID = (SELECT id from secondTable where MyTable.word = secondTable.word)
2021-04-07