SQL Server corelat Subquery
rezumat: în acest tutorial, veți afla despre SQL Server corelat subquery, care este o subquery care depinde de interogarea exterioară pentru valorile sale.
o subinterogare corelată este o subinterogare care utilizează valorile interogării exterioare. Cu alte cuvinte, depinde de interogarea exterioară pentru valorile sale. Din cauza acestei dependențe, o subinterogare corelată nu poate fi executată independent ca o subinterogare simplă.
Mai mult, o subinterogare corelată este executată în mod repetat, o dată pentru fiecare rând evaluat de interogarea exterioară. Subinterogarea corelată este, de asemenea, cunoscută sub numele de subinterogare repetată.
luați în considerare următorul tabel products
din Baza de date eșantion:
următorul exemplu găsește produsele al căror preț de listă este egal cu cel mai mare preț de listă al produselor din aceeași categorie:
Code language: SQL (Structured Query Language) (sql)SELECT product_name, list_price, category_idFROM production.products p1WHERE list_price IN ( SELECT MAX (p2.list_price) FROM production.products p2 WHERE p2.category_id = p1.category_id GROUP BY p2.category_id )ORDER BY category_id, product_name;
iată rezultatul:
în acest exemplu, pentru fiecare produs evaluat de interogare exterior, subquery găsește cel mai mare preț de toate produsele din categoria sa. Dacă prețul produsului curent este egal cu cel mai mare preț al tuturor produselor din categoria sa, produsul este inclus în setul de rezultate. Acest proces continuă pentru următorul produs și așa mai departe.
după cum puteți vedea, subinterogarea corelată este executată o singură dată pentru fiecare produs evaluat de interogarea exterioară.
în acest tutorial, ați învățat despre subinterogarea corelată SQL Server.