【发布时间】:2019-01-29 15:01:57
【问题描述】:
我有一个相当大的 SQL 数据库(目前是 SQLite3),只有一个关系:
CREATE TABLE sometable (
`name` TEXT,
`position` INTEGER
);
由于数据的性质,没有主键或约束,只有 name 和 position 列上的非唯一索引。现在我需要将name 列设置为NULL,其中名称重复但位置不重复。重复的(name,position) 对是可以的,不应更改。
之前:
name | position
-----+---------
a | 5
a | 5
b | 7
b | 8
c | 6
c | 7
c | 7
d | 6
之后:
name | position
-----+---------
a | 5
a | 5
NULL | 6
NULL | 7
NULL | 6
NULL | 7
NULL | 8
d | 6
我可以保留的唯一行是名称/职位关联中没有歧义的行。但是,必须保留重复的名称/职位对,只要该名称不与另一个职位相关联。
我找不到合适的 SQL 语句来执行此操作。
【问题讨论】:
标签: sql sqlite duplicates