鉴于以下架构,我想返回A或B出现在多个不是单个配对的行中的行。
例如:
fruitl + fruitU应该是表中唯一的组合。例如。 apple + Apple没问题,但如果我们看到apple + APple或Apple + Apple,那么数据质量就会出现问题。
基本上A + B应该是一个独特的组合。
fruitl | fruitu | ...
----------------------
apple | Apple | ...
apple | Apple | ...
apple | APple | ...
banana | Banana | ...
banana | Banana | ...
peach | Peach | ...
peach | Peach | ...
从上表中查询将显示...
apple |苹果
或
apple |苹果
因为apple与两个独特的值配对。
我一直在使用类似下面的东西来接近它,但这似乎只会返回不同的值。
数据库中有无限数量的潜在成果。
select *
from table
group by fruitl, fruitu
having count(*) > 1;
答案 0 :(得分:1)
select t.*
from table t
where (A in ('a', 'b') or B in ('a', 'b')) and not (A = 'a' and B = 'b');
我不确定你是否也想要not (A = 'b' and B = 'a')
。关于这种组合的问题尚不清楚。
还有其他表达逻辑的方法,但这似乎与您的描述最为吻合。