为 SQL 服务器中的重复项分配相同的 ID
Assign identical ID to duplicates in SQL server
我想创建一个更新查询,将增量 ID 分配给 table 中的值。但是,重复的值应获得相同的 ID。
我的表格:
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
提前致谢!
您可以创建一个带有自动递增 id 字段和单词的 table。
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])
)
之后,您将 word 的不同值插入到您的 secondTable 中。
INSERT INTO secondTable (word) SELECT distinct word FROM MyTable;
最后您可以使用分组 ID 更新您的 table:
UPDATE MyTable
SET ID = (SELECT id from secondTable where MyTable.word = secondTable.word)
我想创建一个更新查询,将增量 ID 分配给 table 中的值。但是,重复的值应获得相同的 ID。
我的表格:
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
提前致谢!
您可以创建一个带有自动递增 id 字段和单词的 table。
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])
)
之后,您将 word 的不同值插入到您的 secondTable 中。
INSERT INTO secondTable (word) SELECT distinct word FROM MyTable;
最后您可以使用分组 ID 更新您的 table:
UPDATE MyTable
SET ID = (SELECT id from secondTable where MyTable.word = secondTable.word)