Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do
AzureInstância
Gerenciada de SQL do AzureBanco de dados SQL no Microsoft Fabric
Compara um valor escalar com um conjunto de valores de uma única coluna.
Convenções de sintaxe de Transact-SQL
Syntax
scalar_expression { = | <> | != | > | >= | !> | < | <= | !< } ALL ( subquery )
Arguments
scalar_expression
É qualquer expressão válida.
{ = | <> | != | >>|= | !> | <<|= | !< }
É um operador de comparação.
subquery
É uma subconsulta que retorna um conjunto de resultados com uma coluna. O tipo de dados da coluna retornada precisa ser o mesmo tipo de dados que o da scalar_expression.
É uma instrução SELECT restrita, em que a cláusula ORDER BY e a palavra-chave INTO não são permitidas.
Tipos de resultados
Boolean
Valor do resultado
Retornará TRUE quando a comparação especificada for TRUE para todos os pares (scalar_expressionx) e quando x for um valor no conjunto de uma única coluna. Caso contrário, retorna False.
Remarks
ALL requer que a scalar_expression seja comparada positivamente com todos os valores retornados pela subconsulta. Por exemplo, se a subconsulta retornar os valores 2 e 3, scalar_expression<= ALL (a subconsulta) será avaliada como TRUE para uma scalar_expression igual a 2. Se a consulta aninhada retornar os valores 2 e 3, scalar_expression = ALL (consulta aninhada) será avaliada como FALSE, porque alguns dos valores da consulta aninhada (o valor 3) não atenderão aos critérios da expressão.
Para instruções que requerem que a scalar_expression seja comparada positivamente somente a um valor retornado pela subconsulta, confira SOME | ANY (Transact-SQL).
Para comparar a igualdade de duas expressões e garantir um resultado verdadeiro ou falso, confira IS [NOT] DISTINCT FROM (Transact-SQL).
Este artigo se refere a ALL quando usado com uma consulta aninhada. ALL também pode ser usado com UNION e SELECT.
Examples
O exemplo a seguir cria um procedimento armazenado que determina se todos os componentes de um especificado SalesOrderID no banco de dados AdventureWorks2025 podem ser fabricados no número de dias especificado. O exemplo usa uma consulta aninhada para criar uma lista do número de valores de DaysToManufacture para todos os componentes do SalesOrderID específico e, em seguida, confirma se todos os DaysToManufacture estão dentro do número de dias especificado.
-- Uses AdventureWorks
CREATE PROCEDURE DaysToBuild @OrderID INT, @NumberOfDays INT
AS
IF
@NumberOfDays >= ALL
(
SELECT DaysToManufacture
FROM Sales.SalesOrderDetail
JOIN Production.Product
ON Sales.SalesOrderDetail.ProductID = Production.Product.ProductID
WHERE SalesOrderID = @OrderID
)
PRINT 'All items for this order can be manufactured in specified number of days or less.'
ELSE
PRINT 'Some items for this order can''t be manufactured in specified number of days or less.' ;
Para testar o procedimento, execute-o usando o SalesOrderID 49080, que tem um componente que requer 2 dias e dois componentes que requerem 0 dia. A primeira instrução a seguir corresponde aos critérios. A segunda consulta não.
EXECUTE DaysToBuild 49080, 2 ;
Veja a seguir o conjunto de resultados.
All items for this order can be manufactured in specified number of days or less.
EXECUTE DaysToBuild 49080, 1 ;
Veja a seguir o conjunto de resultados.
Some items for this order can't be manufactured in specified number of days or less.