在本教學中,學習SQL Server相關子查詢,該子查詢是一個依賴於外部查詢值的子查詢。
相關子查詢是使用外部查詢的值的子查詢。 換句話說,它取決於外部查詢的值。 由於這種依賴性,相關子查詢不能作為簡單子查詢獨立執行。
此外,對外部查詢評估的每一行重複執行一次相關子查詢。相關子查詢也稱為重複子查詢。
請考慮示例資料庫中的以下products
表:
以下示例查找價格等於其類別的最高價格的產品。
SELECT
product_name,
list_price,
category_id
FROM
production.products p1
WHERE
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;
執行上面查詢語句,得到以下結果:
在此示例中,對於由外部查詢評估的每個產品,子查詢查找其類別中所有產品的最高價格。 如果當前產品的價格等於其類別中所有產品的最高價格,則產品將包含在結果集中。 此過程將繼續進行下一個產品,依此類推。
如上所見,相關子查詢對外部查詢評估的每個產品執行一次。
上一篇:
SQL Server子查詢語句
下一篇:
SQL Server集合操作符