首页/数据/SQL 速查/标量子查询

标量子查询

用于取值场景的子查询:必须至多返回一行一列;没有匹配行时结果为 NULL。

SQL 速查数据更新于 2026-10-12

示例

示例
SELECT o.id, o.amount,
       (SELECT MAX(amount) FROM orders) AS max_amount
FROM orders o
WHERE o.id <= 10;
规则一行一列;多行报错
空结果返回 NULL
典型用法取全局极值、最近时间、固定参数

易错点

  • 返回多行会报错:MySQL 1242、PostgreSQL 提示 more than one row returned by a subquery
  • 没有行时返回 NULL,参与算术或比较会让整行结果为 NULL,按需 COALESCE

数据来源与参考

  • MySQL 8.0 Reference Manual · Scalar Subqueries
  • PostgreSQL Documentation · Scalar Subqueries
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌