在本教學中,將學習如何使用SQL Server ALL
運算符將值與單列值集的列表進行比較。
ALL運算符概述
SQL Server ALL
運算符是一個邏輯運算符,它將標量值與子查詢返回的單列值列表進行比較。
以下是ALL
運算符語法:
scalar_expression comparison_operator ALL ( subquery)
在上面語法中,
scalar_expression
是任何有效的運算式。comparison_operator
是任何有效的比較運算符,包括等於(=
),不等於(<>
),大於(>
),大於或等於(>=
),小於(<
),小於或等於(<=
)。- 括弧內的子查詢(
subquery
)是一個SELECT語句,它返回單個列的結果。 此外,返回列的數據類型必須與標量運算式的數據類型相同。
如果所有比較對(scalar_expression,v)
的計算結果為TRUE
,則ALL
運算符返回TRUE
; v
是單列結果中的值。
如果其中一對(scalar_expression,v)
返回FALSE
,則ALL
運算符返回FALSE
。
SQL Server ALL運算符示例
請考慮示例資料庫中的以下products
表。
以下查詢語句返回每個品牌的產品平均價格:
SELECT
AVG (list_price) avg_list_price
FROM
production.products
GROUP BY
brand_id
ORDER BY
avg_list_price;
執行上面查詢語句,得到以下結果:
1. scalar_expression > ALL ( subquery )
如果scalar_expression
大於子查詢返回的最大值,則運算式返回TRUE
。
例如,以下查詢查找價格大於所有品牌產品的平均價格的產品:
SELECT
product_name,
list_price
FROM
production.products
WHERE
list_price > ALL (
SELECT
AVG (list_price) avg_list_price
FROM
production.products
GROUP BY
brand_id
)
ORDER BY
list_price;
執行上面查詢語句,得到以下結果:
2. scalar_expression < ALL ( subquery )
如果標量運算式(scalar_expression
)小於子查詢(subquery
)返回的最小值,則運算式求值為TRUE
。
以下示例按品牌查找價格低於平均價格中最低價格的產品:
SELECT
product_name,
list_price
FROM
production.products
WHERE
list_price < ALL (
SELECT
AVG (list_price) avg_list_price
FROM
production.products
GROUP BY
brand_id
)
ORDER BY
list_price DESC;
執行上面查詢語句,得到以下結果:
類似地,也可以使用以下比較運算符之一來使用ALL
運算符,例如等於(=
),大於或等於(>=
),小於或等於(<=
)和不等於(<>
)。
上一篇:
SQL Server子查詢語句
下一篇:
SQL Server集合操作符