首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >操纵重复记录

操纵重复记录
EN

Database Administration用户
提问于 2017-03-18 15:55:48
回答 1查看 360关注 0票数 0

在表中(在Microsoft中),我有大量重复字段的记录,例如field-1。我必须更改表并将field-1设置为主键。但正如你所知,这是不可能的。因此,我希望更改重复数据的field-1值。例如,现在我有一张这样的桌子:

代码语言:javascript
复制
field-1  | field-2
1        | f1 
1        | f2
2        | f3 
2        | f4

想要改变到这一点:

代码语言:javascript
复制
field-1  | field-2
1        | f1 
201      | f2
2        | f3 
202      | f4

注意:

重复记录的最大数量是2

我怎么能这么做?

EN

回答 1

Database Administration用户

发布于 2017-03-19 18:26:15

这有点复杂,但你可以试试这个。

创建一个复制表来存储重复的表。在insert语句中使用此查询:

代码语言:javascript
复制
SELECT field-1,COUNT(*) AS COUNT
FROM yourtable
GROUP BY field-1
HAVING COUNT(*) = 2

创建一个nonDuplicate表来存储非重复项。在insert语句中使用此查询:

代码语言:javascript
复制
SELECT field-1,COUNT(*) AS COUNT
FROM yourtable
GROUP BY field-1
HAVING COUNT(*) = 1

创建一个duplicateValue表来存储已修改的重复值。在insert语句中使用此查询之前,您需要修改下面的case语句以使用Access。这里有一些链接应该对你有帮助。

如何在访问中添加行号

存取案例陈述

代码语言:javascript
复制
--Modify the 2nd instance of the duplicate field
--If the row number is Odd, then the value is the same
--If the row number is Even, then 200 is added to the value
SELECT
  --This is how you would do it with SQL Server
  --You will need to figure out how to modify this code to work with Access
  CASE WHEN ROW_NUMBER() OVER (ORDER BY field-1 ASC) % 2 <> 0 
  THEN field-1 ELSE field-1 + 200 END AS 'field-1'
  --THE ABOVE CASE STATEMENT NEEDS TO BE MODIFIED FOR ACCESS
  ,field-2
FROM yourtable
    JOIN duplicateTable ON yourtable.field-1 = duplicateTable.field-1

创建一个nonDuplicateValue表来存储非重复值。在insert语句中使用此查询:

代码语言:javascript
复制
--Get the values of field 1 and field 2
--from non duplicate rows
SELECT field-1,field-2
FROM yourtable
    JOIN nonDuplicateTable ON yourtable.field-1 = nonDuplicateTable.field-1

查询将结果合并在一起,并用于最终表

中的插入

代码语言:javascript
复制
SELECT field-1,field-2
FROM duplicateValues

UNION

SELECT field-1,field-2
FROM nonDuplicateValues
票数 -1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/167520

复制
相关文章

相似问题

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