【问题标题】:Assign identical ID to duplicates in SQL server为 SQL Server 中的重复项分配相同的 ID
【发布时间】:2016-05-10 23:40:30
【问题描述】:

我想创建一个更新查询,它将增量 ID 分配给我的表中的值。但是,重复值应该接收相同的 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  

提前致谢!

【问题讨论】:

    标签: sql sql-server duplicates auto-increment


    【解决方案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)
    

    【讨论】:

    猜你喜欢
    • 2012-05-25
    • 2022-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 2017-04-23
    相关资源
    最近更新 更多