ALL (Transact-SQL)
Actualizado: 17 de julio de 2006
Compara un valor escalar con un conjunto de valores de una sola columna.
Convenciones de sintaxis de Transact-SQL
Sintaxis
scalar_expression { = | <> | != | > | >= | !> | < | <= | !< } ALL ( subquery )
Argumentos
- scalar_expression
Es cualquier expresión válida.
- { = | <> | != | > | >= | !> | < | <= | !< }
Es un operador de comparación.
subquery
Es una subconsulta que devuelve un conjunto de resultados de una columna. El tipo de datos de la columna devuelta debe ser el mismo que el de scalar_expression.Es una instrucción SELECT restringida en la que no se permiten la cláusula ORDER BY, la cláusula COMPUTE ni la palabra clave INTO.
Notas
ALL requiere que scalar_expression se compare de forma positiva con cada valor devuelto por la subconsulta. Por ejemplo, si la subconsulta devuelve los valores 2 y 3, scalar_expression <= ALL (subconsulta) se evaluaría como TRUE para una scalar_expression de 2. Si la subconsulta devuelve los valores 2 y 3, scalar_expression = ALL (subconsulta) se evaluaría como FALSE, porque algunos de los valores de la subconsulta (el valor 3) no cumpliría los criterios de la expresión.
Para instrucciones que requieren que scalar_expression se compare de forma positiva a sólo un valor devuelto por la subconsulta, vea SOME | ANY (Transact-SQL).
Este tema hace referencia a ALL cuando se utiliza con una subconsulta. ALL también se puede utilizar con UNION y SELECT.
Tipos de resultado
Boolean
Valor del resultado
Devuelve TRUE cuando la comparación especificada es TRUE para todos los pares (scalar_expression**,**x) donde x es un valor del conjunto de una sola columna; en caso contrario, devuelve FALSE.
Ejemplos
En el ejemplo siguiente se crea un procedimiento almacenado que determina si todos los componentes de un SalesOrderID
especificado en la base de datos AdventureWorks
se pueden fabricar en el número de días especificado. En el ejemplo se usa una subconsulta para crear una lista del número del valor de DaysToManufacture
para todos los componentes del SalesOrderID
específico y, a continuación, confirma que todos los DaysToManufacture
están dentro del número de días especificado.
USE AdventureWorks ;
GO
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 cannot be manufactured in specified number of days or less.' ;
Para probar el procedimiento, ejecútelo con SalesOrderID 49080
, que tiene un componente que requiere 2
días y dos componentes que requieren 0 días. La primera instrucción cumple los criterios. La segunda consulta no los cumple.
EXECUTE DaysToBuild 49080, 2 ;
Éste es el conjunto de resultados.
All items for this order can be manufactured in specified number of days or less.
EXECUTE DaysToBuild 49080, 1 ;
Éste es el conjunto de resultados.
Some items for this order cannot be manufactured in specified number of days or less.
Vea también
Referencia
CASE (Transact-SQL)
Expresiones (Transact-SQL)
Funciones (Transact-SQL)
LIKE (Transact-SQL)
Operadores (Transact-SQL)
SELECT (Transact-SQL)
WHERE (Transact-SQL)
IN (Transact-SQL)
Otros recursos
Operadores de comparación modificados por ANY, SOME o ALL
Operadores lógicos
Aspectos básicos de las subconsultas
Aspectos básicos de las subconsultas
Ayuda e información
Obtener ayuda sobre SQL Server 2005
Historial de cambios
Versión | Historial |
---|---|
17 de julio de 2006 |
|