早上好,我的sqlite表中出现了一个意外情况。该表包含3列:id、code_a和code_b。
意外情况是:
id code_a code_b
n 10 4<--好
n 4 10<--不期望的值,因为10已经存在于第一行的code_a中
n 3 10<-不期望的值,因为10已经存在于第一行的code_a中
n 5 7<-好的
我需要一个查询(或重新创建表(,以避免所有列的code_b中的code_a的值重复
我想要的输出是
id code_a code_b
n 10 4
n 5 7
任何建议都将不胜感激。
谢谢
您可以使用NOT EXIST:
SELECT t1.*
FROM tablename t1
WHERE NOT EXISTS (
SELECT 1 FROM tablename t2
WHERE t2.id < t1.id
AND (t2.code_a IN (t1.code_a, t1.code_b) OR t2.code_b IN (t1.code_a, t1.code_b))
)