當(dāng)一個查詢是另一個查詢的條件時,稱之為 子查詢。
例如,我們想要知道所有工資大于平均值的員工名單。
首先,我們計算出所有工資的平均值:
SELECT AVG(Salary) FROM employees;
當(dāng)我們已經(jīng)知道工資平均值為 “3450” 時,我們可以使用 WHERE 來列出大于該平均值的工資。
SQL 語句如下所示:
SELECT FirstName, Salary FROM employees WHERE Salary > 3450 ORDER BY Salary DESC;
執(zhí)行輸出結(jié)果:
DESC 關(guān)鍵字按降序排列結(jié)果,ASC 關(guān)鍵字按升序排列結(jié)果。
SELECT * FROM items cost > 500 cost ;
單個子查詢將更容易地返回相同的結(jié)果。
SELECT FirstName, Salary FROM employees WHERE Salary > (SELECT AVG(Salary) FROM employees) ORDER BY Salary DESC;
執(zhí)行輸出相同的結(jié)果:
注意:將子查詢括在括號中。另外,子查詢結(jié)尾處沒有分號,因為它是單個查詢的一部分。
SELECT * FROM items cost > (SELECT (cost) FROM );