通常在SQL查询中使用WHERE
子句,在其中我们从表中检查是否满足条件,但使用以下代码:
SELECT name
FROM teacher as T1
WHERE (
SELECT COUNT (DISTINCT T2.salary)
FROM teacher as T2
WHERE T2.salary > T1.salary
) = 3;
以下子查询Sub
返回一个数字。
(SELECT COUNT (DISTINCT T2.salary)
FROM teacher as T2
WHERE T2.salary > T1.salary)
但我不明白我们怎么检查WHERE Sub = 3
,这对我来说没有意义。你能解释一下吗?
整个查询找到了第四高的教师工资。
2条答案
按热度按时间68de4m5k1#
您可以在任何可以使用表达式的地方使用子查询,那么为什么不能在相等运算符的左侧使用呢?
但这种解决问题的方式相当难看。好呀
eyh26e7m2#
下面的查询可能更全面: