GUIDE深度 · Deep dive

子查询、EXISTS 和窗口函数

子查询可以返回一个值、一列或多行:= 用于单值,IN 用于多行,EXISTS 只判断是否存在。窗口函数在不合并行的前提下做排名/累计。

更新 2026-10-30 · 公式可核验

子查询

IN (SELECT ...) 多行。

EXISTS (SELECT 1 ...) 只判断存在。

相关子查询引用外层表。

窗口

ROW_NUMBER() OVER (PARTITION BY ... ORDER BY ...)。

窗口函数不减少行数。

常见问题

子查询能返回多列吗?

可以,但比较时要用行值/EXISTS。

CTE 是什么?

WITH 命名的临时结果集,便于复用。

数据来源

相关计算器

SQL 进阶查询闯关:1000 道 JOIN/子查询题游戏化学习1000 道进阶 SQL 题,覆盖 JOIN、GROUP BY/HAVING、子查询、EXISTS、CASE 和窗口函数,分 50 关,按遗忘曲线复习。

更多指南

平假名和片假名有什么区别?阅读指南遗忘曲线怎么复习?阅读指南音读和训读怎么分?阅读指南N5 汉字学习顺序阅读指南