Sdílet prostřednictvím


VŠICHNI (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL databáze v Microsoft Fabric

Porovná skalární hodnotu se sadou hodnot s jedním sloupcem.

Transact-SQL konvence syntaxe

Syntax

scalar_expression { = | <> | != | > | >= | !> | < | <= | !< } ALL ( subquery )  

Arguments

scalar_expression
Je libovolný platný výraz.

{ = | <> | != | > | >= | !> | < | <= | !< }
Je relační operátor.

subquery
Je poddotaz, který vrací sadu výsledků jednoho sloupce. Datový typ vráceného sloupce musí být stejný datový typ jako datový typ scalar_expression.

Je omezený příkaz SELECT, ve kterém není povolená klauzule ORDER BY a klíčové slovo INTO.

Typy výsledků

Boolean

Hodnota výsledku

Vrátí hodnotu PRAVDA, pokud je zadané porovnání pravda pro všechny páry (scalar_expression, x), pokud x je hodnota v sadě s jedním sloupcem. V opačném případě vrátí hodnotu FALSE.

Remarks

FUNKCE ALL vyžaduje , aby scalar_expression porovnávala kladně s každou hodnotou vrácenou poddotazem. Pokud například poddotaz vrátí hodnoty 2 a 3, scalar_expression<= ALL (poddotaz) se vyhodnotí jako PRAVDA pro scalar_expression 2. Pokud poddotaz vrátí hodnoty 2 a 3, scalar_expression = ALL (poddotaz) by se vyhodnotil jako NEPRAVDA, protože některé hodnoty poddotazů (hodnota 3) nesplní kritéria výrazu.

Příkazy, které vyžadují , aby scalar_expression porovnat pozitivně pouze s jednou hodnotou vrácenou poddotazem, viz ČÁST | ANY (Transact-SQL).

Chcete-li porovnat rovnost dvou výrazů a zaručit pravdivý nebo nepravdivý výsledek, přečtěte si článek IS [NOT] DISTINCT FROM (Transact-SQL).

Tento článek odkazuje na VŠE, pokud se používá s poddotazem. Funkce ALL se dá použít také s union a SELECT.

Examples

Následující příklad vytváří uloženou proceduru, která určuje, zda všechny komponenty specifikované SalesOrderID v databázi AdventureWorks2025 lze vyrobit během stanoveného počtu dnů. V příkladu se pomocí poddotaz vytvoří seznam počtu DaysToManufacture hodnot pro všechny součásti konkrétního objektu SalesOrderIDa pak potvrdí, že všechny hodnoty DaysToManufacture jsou v zadaném počtu dnů.

-- 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.' ;  

Chcete-li otestovat proceduru, spusťte proceduru pomocí , která má jednu komponentu SalesOrderID 49080vyžadující 2 dny a dvě komponenty, které vyžadují 0 dnů. První následující příkaz splňuje kritéria. Druhý dotaz ne.

EXECUTE DaysToBuild 49080, 2 ;  

Tady je soubor výsledků.

All items for this order can be manufactured in specified number of days or less.

EXECUTE DaysToBuild 49080, 1 ;  

Tady je soubor výsledků.

Some items for this order can't be manufactured in specified number of days or less.

Viz také