-1

我有一张这样的桌子:

在此处输入图像描述

我想选择 id,其中 c3 = 100 时 c2 的值大于 c3 = 101 时 c2 的值。

我的查询应该选择 id 841213874

4

2 回答 2

0

您可以使用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)
于 2021-07-27T20:51:17.903 回答
0

您可以使用聚合:

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);
于 2021-07-27T20:39:18.200 回答