首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >自动增加重复数字

自动增加重复数字
EN

Stack Overflow用户
提问于 2015-09-15 12:51:33
回答 2查看 883关注 0票数 0

我有一个数据库,它通过使用重复编号作为主键的一部分来处理重复记录。我正在尝试插入一些已从审核表中恢复的行。但是,当我去插入记录时,我违反了主键。(这些不是重复的,但是,使它们唯一的字段应该被分解到键中)。我的问题是,当我用select/insert语句插入记录时,是否有一种自动增加重复数字的方法,或者是否需要采用不同的方法。

代码语言:javascript
运行
复制
fieldA nvarchar(255) not null,
fieldB nvarchar(255) not null,
duplicateNbr int not null,
fieldD nvarchar(255) null, /* Should be part of the key */

Table1 
'Dave','Jones','FieldD1'
'Dave', Jones','FieldD2'

 INSERT INTO Table2 (FName, LName, DuplicateNbr, FieldD)
 SELECT FName, LName, 0, FieldD FROM TABLE1  
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-15 13:50:30

在TABLE1上的SELECT语句中,可以使用带分区BY子句的ROW_NUMBER()函数对每个重复集中的重复行进行编号

下面的SQL教程展示了一种使用带分区的数字()检测重复项并删除它们的方法

以下是查询

代码语言:javascript
运行
复制
INSERT INTO Table2 (fieldA, fieldB, DuplicateNbr, FieldD)
SELECT 
    fieldA, 
    fieldB, 
    duplicateNbr = ROW_NUMBER() over (partition by fieldA, fieldB Order by newid())-1,
    fieldD 
FROM TABLE1

我希望能帮上忙

票数 1
EN

Stack Overflow用户

发布于 2015-09-15 13:38:50

我会用合并语句做这件事。

只要在“匹配”子句中生成一个新的唯一id和一个正常的插入(如果没有匹配)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32586607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档