Subquery(子查詢)在SQL查詢中非常有用,可以在多種場景下提高查詢的靈活性和效率。以下是一些常見的適用場景:
SELECT *
FROM Employees e
WHERE e.Sales = (SELECT MAX(Sales) FROM Employees);
SELECT *
FROM Employees e
WHERE e.Department = 'Sales'
AND e.Salary > (SELECT AVG(Salary) FROM Employees WHERE Department = 'Sales');
SELECT Department, COUNT(*) AS EmployeeCount
FROM Employees
GROUP BY Department;
SELECT e.Name AS Employee, m.Name AS Manager
FROM Employees e
JOIN Employees m ON e.ManagerID = m.ID;
SELECT *
FROM Employees
WHERE City IN (SELECT City FROM Departments WHERE DepartmentName = 'Sales');
SELECT *
FROM Employees e
WHERE EXISTS (SELECT 1 FROM Orders o WHERE o.EmployeeID = e.ID AND o.OrderDate > '2023-01-01');
SELECT *
FROM Employees e
WHERE NOT EXISTS (SELECT 1 FROM Orders o WHERE o.EmployeeID = e.ID);
SELECT 'Employee' AS Type, Name, Department FROM Employees
UNION ALL
SELECT 'Manager', Name, Department FROM Managers;
UPDATE Employees
SET Salary = Salary * 1.1
WHERE Salary < (SELECT AVG(Salary) FROM Employees);
SELECT d.DepartmentName,
(SUM(o.Sales) - SUM(l.LastYearSales)) / SUM(l.LastYearSales) * 100 AS GrowthRate
FROM Departments d
JOIN Orders o ON d.DepartmentID = o.DepartmentID
JOIN (SELECT DepartmentID, SUM(Sales) AS LastYearSales FROM Orders GROUP BY DepartmentID) l
ON d.DepartmentID = l.DepartmentID
GROUP BY d.DepartmentName;
總之,Subquery是一個強大的工具,合理使用可以顯著提升SQL查詢的能力和效率。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。