Partilhar via


TODOS (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase 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.

Consulte também