subquery ها
زیرپرسوجو (Subquery) عبارت است از یک جستجو که داخل جستجوی دیگر قرار میگیرد.
مثال: لیست تمام کارکنانی که حقوقشان بالاتر از میانگین است.
ابتدا میانگین حقوق را محاسبه میکنیم:
SELECT AVG(Salary) FROM employees;
پس از دانستن میانگین، میتوانیم از یک WHERE ساده برای فیلتر حقوق بالاتر از این مقدار استفاده کنیم:
SELECT FirstName, Salary FROM employees
WHERE Salary > 3100
ORDER BY Salary DESC;
خروجی:
نکته: کلمه کلیدی DESC نتایج را به ترتیب نزولی مرتب میکند. به طور مشابه، ASC نتایج را به ترتیب صعودی مرتب میکند.
با استفاده از یک subquery تک نتیجه، میتوانیم همان نتیجه را راحتتر بدست آوریم:
SELECT FirstName, Salary FROM employees
WHERE Salary > (SELECT AVG(Salary) FROM employees)
ORDER BY Salary DESC;
خروجی:
نکته: Subquery را درون پرانتز قرار دهید و توجه کنید که در پایان subquery نقطه ویرگول نمیگذاریم، زیرا بخشی از کوئری اصلی است.