当一个查询是另一个查询的条件时,称之为 子查询。
例如,我们想要知道所有工资大于平均值的员工名单。
首先,我们计算出所有工资的平均值:
SELECT AVG(Salary) FROM employees;
当我们已经知道工资平均值为 “3450” 时,我们可以使用 WHERE 来列出大于该平均值的工资。
SQL 语句如下所示:
SELECT FirstName, Salary FROM employees WHERE Salary > 3450 ORDER BY Salary DESC;
执行输出结果:
DESC 关键字按降序排列结果,ASC 关键字按升序排列结果。
SELECT * FROM items cost > 500 cost ;
单个子查询将更容易地返回相同的结果。
SELECT FirstName, Salary FROM employees WHERE Salary > (SELECT AVG(Salary) FROM employees) ORDER BY Salary DESC;
执行输出相同的结果:
注意:将子查询括在括号中。另外,子查询结尾处没有分号,因为它是单个查询的一部分。
SELECT * FROM items cost > (SELECT (cost) FROM );