Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
Compara um valor escalar com um conjunto de valores de coluna única.
Transact-SQL convenções de sintaxe
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 de uma coluna. O tipo de dados da coluna retornada deve ser o mesmo tipo de dados que o tipo de dados do scalar_expression.
É uma instrução SELECT restrita, na qual a cláusula ORDER BY e a palavra-chave INTO não são permitidas.
Tipos de resultados
Boolean
Valor do resultado
Retorna TRUE quando a comparação especificada é TRUE para todos os pares (scalar_expression, x), quando x é um valor no conjunto de coluna única. Caso contrário, retorna FALSE.
Remarks
ALL requer que o scalar_expression compare positivamente com cada valor retornado pela subconsulta. Por exemplo, se a subconsulta retornar valores de 2 e 3, scalar_expression<= ALL (subconsulta) será avaliada como TRUE para uma scalar_expression de 2. Se a subconsulta retornar valores de 2 e 3, scalar_expression = ALL (subconsulta) será avaliada como FALSE, porque alguns dos valores da subconsulta (o valor de 3) não atenderiam aos critérios da expressão.
Para instruções que exigem que o scalar_expression compare positivamente com apenas um valor retornado pela subconsulta, consulte ALGUNS | QUALQUER (Transact-SQL).
Para comparar a igualdade de duas expressões e garantir um resultado verdadeiro ou falso, ver NÃO É [NÃO] DISTINTO DE (Transact-SQL).
Este artigo refere-se a ALL quando é usado com uma subconsulta. ALL também pode ser usado com UNION e SELECT.
Examples
O exemplo seguinte cria um procedimento armazenado que determina se todos os componentes de um especificado SalesOrderID na base de dados AdventureWorks2025 podem ser fabricados no número de dias especificado. O exemplo usa uma subconsulta para criar uma lista do número de DaysToManufacture valores para todos os componentes do específico SalesOrderIDe, em seguida, confirma que 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 procedimento usando o SalesOrderID 49080, que tem um componente que requer 2 dias e dois componentes que exigem 0 dias. A primeira declaração abaixo atende aos critérios. A segunda consulta não.
EXECUTE DaysToBuild 49080, 2 ;
Aqui está o conjunto de resultados.
All items for this order can be manufactured in specified number of days or less.
EXECUTE DaysToBuild 49080, 1 ;
Aqui está o conjunto de resultados.
Some items for this order can't be manufactured in specified number of days or less.