我有一张这样的桌子:
我想选择 id,其中 c3 = 100 时 c2 的值大于 c3 = 101 时 c2 的值。
我的查询应该选择 id 841213874
您可以使用EXISTS
:
SELECT t1.id
FROM tablename t1
WHERE t1.c3 = 100
AND EXISTS (SELECT 1 FROM tablename t2 WHERE t2.c3 = 101 AND t2.c2 < t1.c2)
您可以使用聚合:
select id
from t
group by id
having max(case when c3 = 100 then c2 end) > max(case when c3 = 101 then c2 end);
您还可以使用相关子查询:
select id
from t
where cd = 100 and
c2 > (select max(t2.c2) from t t2 where t2.id = t.id and t2.c3 = 101);